1、以下在main()方法中调用,然后打印出相关的数据

public class ArrTest {
    public static void main(String args[]) {
        int[] arr = {23, 12, 48, 56, 45};
        //方法一:Arrays.sort()
        //ArrSort(arr);
        //方法二:冒泡方法
        //ArrSort2(arr);
        //方法三:选择排序
        //ArrSort3(arr);
        //方法四:反转排序
        //ArrSort4(arr);
        //方法五:插入排序
        ArrSort5(arr);
    }
}

方法一:Arrays.sort()

Arrays.sort()排序方法在java中是最简单且最常用的排序方法

    /**
     * 方法一:Arrays.sort()
     *
     * @param arr
     */
    public static void ArrSort(int[] arr) {
        Arrays.sort(arr);
        for (int k : arr) {
            System.out.print(k);
            System.out.print(" ");
        }
    }
 

方法二:冒泡方法

简单来说,冒泡排序就是重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

/**
     * 方法二:冒泡方法
     *
     * @param arr2
     */
    public static void ArrSort2(int[] arr2) {
        int temp;
        for (int i = 0; i < arr2.length; i++) {
            for (int j = i + 1; j < arr2.length; j++) {
                if (arr2[i] > arr2[j]) {
                    temp = arr2[i];
                    arr2[i] = arr2[j];
                    arr2[j] = temp;
                }
            }
        }
        for (int k : arr2) {
            System.out.print(k);
            System.out.print(" ");
        }
    }

方法三:选择排序

先找到最小元素所在位置的索引,然后将该元素与第一位上的元素进行交换。

 /**
     * 方法三:选择排序
     *
     * @param arr3
     */
    public static void ArrSort3(int[] arr3) {
        for (int i = 0; i < arr3.length; i++) {
            int tem = i;
            //将数组中从i开始的最小的元素所在位置的索引赋值给tem
            for (int j = i; j < arr3.length; j++) {
                if (arr3[j] < arr3[tem]) {
                    tem = j;
                }
            }
            //上面获取了数组中从i开始的最小值的位置索引为tem,利用该索引将第i位上的元素与其进行交换
            int temp1 = arr3[i];
            arr3[i] = arr3[tem];
            arr3[tem] = temp1;
        }
        for (int k : arr3) {
            System.out.print(k);
            System.out.print(" ");
        }
    }

方法四:反转排序

将原数组按逆序排列

/**
     * 方法四:反转排序
     *
     * @param arr4
     */
    public static void ArrSort4(int[] arr4) {
        //将数组第i位上的元素与第arr.length-i-1位上的元素进行交换
        for (int i = 0; i < arr4.length / 2; i++) {
            int tp = arr4[i];
            arr4[i] = arr4[arr4.length - i - 1];
            arr4[arr4.length - i - 1] = tp;
        }
        for (int k : arr4) {
            System.out.print(k);
            System.out.print(" ");
        }
    }

方法五:插入排序

/**
     * 方法五:插入排序
     *
     * @param arr5
     */
    public static void ArrSort5(int[] arr5) {
        for (int i = 1; i < arr5.length; i++) {
            for (int j = i; j > 0; j--) {
                if (arr5[j - 1] > arr5[j]) {//大的放后面
                    int tmp = arr5[j - 1];
                    arr5[j - 1] = arr5[j];
                    arr5[j] = tmp;
                }
            }
        }
        for (int k : arr5) {
            System.out.print(k);
            System.out.print(" ");
        }
    }
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐