黑马程序员技术交流社区
标题:
二维数组排序的问题
[打印本页]
作者:
落幕繁华
时间:
2014-7-24 11:44
标题:
二维数组排序的问题
如何将一个二维数组int arr[][] = { { 12, 2, 3, 7 }, { 45, 5, 6 }, { 74, 8, 9, 15 } };进行排序,要求1:结果成2,3,5,7,8,9.....的形式。要求2:结果成{{2,3,7,12},{5,6,45},{8,9,15,74}}的形式
作者:
思维
时间:
2014-7-24 11:52
要求1:把二维数组中的数据全部存到一维数组中在进行排序!
要求2:把要求1的结果再存到二维数组中
作者:
icris
时间:
2014-7-24 12:54
public static void main(String[] args) {
int[][] arr = { { 12, 2, 3, 7 }, { 45, 5, 6 }, { 74, 8, 9, 15 } };
m2(arr);
m1(arr);
}
private static void m1(int[][] arr) {
// TODO Auto-generated method stub
int n = 0;
int c = 0;
for (int[] is : arr) {
n += is.length;
}
int[] a = new int[n];
for (int[] is : arr) {
for (int i : is) {
a[c++] = i;
for (int j = 0; j < c; j++) {
if (i < a[j]) {
for (int k = c; k > j; k--) {
a[k] = a[k - 1];
}
a[j] = i;
break;
}
}
}
}
for (int i : a) {
System.out.print(i + "\t");
}
}
private static void m2(int[][] arr) {
for (int[] is : arr) {
for (int i = 0; i < is.length; i++) {
for (int j = i + 1; j < is.length; j++) {
if (is[j] < is[i]) {
swap(is, i, j);
}
}
}
}
for (int[] is : arr) {
for (int i : is) {
System.out.print(i + "\t");
}
System.out.println();
}
}
private static void swap(int[] is, int i, int j) {
int temp = is[i];
is[i] = is[j];
is[j] = temp;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2