排序

冒泡排序
public class BubbleSort {

public static void bubbleSort1(int[] a, int n) {
    int i, j;

    for (i = n - 1; i > 0; i--) {
        // 将a[0...i]中最大的数据放在末尾
        for (j = 0; j < i; j++) {

            if (a[j] > a[j + 1]) {
                // 交换a[j]和a[j+1]
                int tmp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = tmp;
            }
        }
    }
}

}

选择排序
public class ChooseSort {
private int[]array;
private Object length;

private ChooseSort(int[]array){
    this.array=array;
    this.length=array.length;
}
public void display(){
    for(int i:array){
        System.out.print(i+"");
    }
    System.out.println();
}
public void chooseSort(){
    int length = 0;
    for(int i = 0; i<length-1; i++){
        int minIndex = i;
        for(int j=minIndex+1;j<length;j++){
            if(array[j]<array[minIndex]){
                minIndex = j;
            }
        }
        int temp = array[i];
        array[i] = array[minIndex];
        array[minIndex] = temp;
    }
}

public static void main(String[] args){
    int[] array={100,45,36,21,17,13,7};
    ChooseSort cs = new ChooseSort(array);
    System.out.println("排序前的数据为:");
    cs.display();
    cs.chooseSort();
    System.out.println("排序后的数据为:");
    cs.display();
}

}

二维排序
import java.util.Arrays;
import java.util.Comparator;

public class ClassSort {
public static int[][] mySort(int[][] array){
// 新建一个比较器Comparator作为匿名内部类
Arrays.sort(array, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
if(o1[0] == o2[0]){
// 若俩数组的第一个元素相等,则比较它们的第二个元素
return o1[1] - o2[1];
}else {
// 若俩数组的第一个元素不相等,则按从小到大的顺序排列
return o1[0] - o2[0];
}
}
});
return array;
}
public static void main(String[] args){
// 输入测试数据
int[][] arr = new int[][]{{1,3},{2,4}, {2,6},{8,10},{8,18}, {15,18}};
int[][] sorted = mySort(arr);
// 输出测试结果
for(int[] a : sorted){
System.out.println(a[0] + "," + a[1]);
}
}
}

posted @ 2025-11-17 17:00  hujiangtao1  阅读(1)  评论(0)    收藏  举报