二元数组按照第一个元素从小到大排序,若第一个相同第二个按照从大到小排序
-
public class ErYuanZu {
-
-
public static void main(String[] args) {
-
int[][] arrs = { { 1, 2 }, { 3, 4 }, { 3, 2 }, { 3, 6 }, { 2, 4 }, { 2, 2 } };
-
-
System.out.println("排序前:");
-
-
print(arrs);
-
System.out.println("");
-
System.out.println("排序后:");
-
BubbleSort(arrs);
-
print(arrs);
-
}
-
-
public static void BubbleSort(int[][] arr) {
-
boolean flag = true;
-
for (int i = 0; i < arr.length - 1 && flag; i++) {
-
flag = false;
-
for (int j = arr.length - 2; j >= i; j--) {
-
if (arr[j][0] > arr[j + 1][0] || (arr[j][0] == arr[j + 1][0] && arr[j][1] < arr[j + 1][1])) {
-
swap(arr, j, j + 1);
-
flag = true;
-
}
-
-
}
-
}
-
-
}
-
-
private static void swap(int[][] arr, int j, int i) {
-
int temp1;
-
int temp2;
-
temp1 = arr[j][0];
-
temp2 = arr[j][1];
-
-
arr[j][0] = arr[i][0];
-
arr[j][1] = arr[i][1];
-
-
arr[i][0] = temp1;
-
arr[i][1] = temp2;
-
}
-
-
private static void print(int[][] arr) {
-
for (int i = 0; i < arr.length; i++) {
-
System.out.print("{" + arr[i][0] + "," + arr[i][1] + "} ");
-
-
}
-
}
-
}
|
运行结果
-
排序前:
-
{1,2} {3,4} {3,2} {3,6} {2,4} {2,2}
-
排序后:
-
{1,2} {2,4} {2,2} {3,6} {3,4} {3,2}
|