排序——选择&冒泡

public class Demo1 {

    public static void main(String[] args) {

        int[] arr = {5, 4, 6, 8, 9, 4, 7, 12, 6};
//        selectSort(arr);
        bubbleSort(arr);

        printArray(arr);
    }

    /**
     * 冒泡排序
     *
     * @param arr
     */
    private static void bubbleSort(int[] arr) {
        for (int x = 0; x < arr.length - 1; x++) {
            for (int y = 0; y < arr.length - x - 1; y++) {
                if (arr[y] < arr[y + 1]) {
                    swap(arr, y, y + 1);
                }
            }
        }
    }
    
    /**
     * 选择排序法,内循环一次,最值出现在头角标
     *
     * @param arr
     */
    private static void selectSort(int[] arr) {
        for (int x = 0; x < arr.length - 1; x++) {
            for (int y = x + 1; y < arr.length; y++) {
                if (arr[x] > arr[y]) {
                    swap(arr, x, y);
                }
            }
        }
    }

    public static void swap(int[] arr, int a, int b) {
        int temp = arr[a];
        arr[b] = arr[a];
        arr[a] = temp;
    }

    private static void printArray(int[] arr) {
        for (int x = 0; x < arr.length; x++) {
            if (x != arr.length - 1)
                System.out.print(arr[x] + ",");
            else
                System.out.print(arr[x]);
        }

    }
}

你可能感兴趣的:(数据结构与算法)