定义并录入一个任意的二维数组a[3][4],用冒泡排序按升序进行排列。
晕,这个题是你的考试题吗
楼主你好,刚写的代码:
import java.util.Random;
class RandomDemo
{
public static void main(String[] args)
{
int[][] data = new int[3][4];
Random random = new Random();
//生成数据
for(int i = 0; i < data.length; i++){
for (int j = 0; j < data[i].length; j++)
{
data[i][j] = random.nextInt();
System.out.print(data[i][j] + ", ");
}
System.out.println();
}
System.out.println();
//排序输出
int[] dataCopy = new int[12];
for(int i = 0; i < data.length; i++){
for (int j = 0; j < data[i].length; j++)
{
dataCopy[i * 3 + j] = data[i][j];
}
}
for(int i = 1; i < dataCopy.length; i++){
for(int j = 0; j < dataCopy.length - i; j++){
if(dataCopy[j] > dataCopy[j + 1]){
int temp = dataCopy[j];
dataCopy[j] = dataCopy[j + 1];
dataCopy[j + 1] = temp;
}
}
}
for(int i = 0; i < data.length; i++){
for (int j = 0; j < data[i].length; j++)
{
data[i][j] = dataCopy[i * 3 + j];
System.out.print(data[i][j] + ", ");
}
System.out.println();
}
System.out.println("Hello World!");
}
}
效果图:
望采纳。
#include
void main()
{
int a[3][4] = { {3,9,6,7},
{5,9,2,8},
{4,1,6,2}
};
printf("排序前\n");
for(int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
printf("%d ", a[i][j]);
}
printf("\n");
}
//1:全都丢进一个数组里
//2:
//for (int i = 0; i < 3; i++)
//{
// for (int ii = 0; ii < 4; ii++)
// {
//
// for (int j = 0; j < 3; j++)
// {
// for (int jj = 0; jj < 4; jj++)
// {
// if (a[j][jj] < a[i][ii])
// {
// int t = a[i][ii];
// a[i][ii] = a[j][jj];
// a[j][jj] = t;
// }
// }
//
// }
// }
//}
//3.
for (int i = 0; i < 12; i++)
{
for (int j = i; j < 12; j++)
{
if (a[j/4][j%4] < a[i/4][i%4])
{
int t = a[i/4][i%4];
a[i/4][i%4] = a[j/4][j%4];
a[j/4][j%4] = t;
}
}
}
printf("排序后\n");
for(int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
printf("%d ", a[i][j]);
}
printf("\n");
}
getchar();
}
自己写的关于排序的博客,对你可能会有帮助,写的不好请见谅
http://blog.csdn.net/tutuxs/article/details/52878391
这算是变相的打广告吗(^~^)