快速排序(java实现)

快速排序(java实现)

public class Study {
    public static void main(String[] args) {
        int[] test_arr = new int[50];
        for(int i = 0; i < test_arr.length; i++) {
            //取随机数0-100给数组赋值
            test_arr[i] = (int)(Math.random() * 100);
        }
        System.out.println("排序前");
        //排序前数组输出
        for(int i: test_arr) {
            System.out.print(i + " ");
        }
        //换行
        System.out.println();
        System.out.println("排序后");
        mysort(test_arr, 0, test_arr.length - 1);
        //排序后数组输出
        for(int i: test_arr) {
            System.out.print(i + " ");
        }
    }
    //快速排序方法
    public static void mysort(int[] arr, int left, int right) {
        if(left > right) {
            return;
        }
        int i = left;
        int j = right;
        int key = arr[left];
        int temp;
        while(i < j) {
            while(arr[j] >= key && i < j) {
                j--;
            }
            while(arr[i] <= key && i < j) {
                i++;
            }
            if(i < j) {
                temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
        arr[left] = arr[i];
        arr[i] = key;
        mysort(arr, i + 1, right);
        mysort(arr, left, i - 1);
    }
}

1.测试结果

排序前 60 87 71 22 81 61 33 89 43 50 56 92 82 54 85 78 55 66 17 76 29 75 39 79 89 24 71 40 73 67 70 94 73 43 20 19 46 34 56 50 42 12 54 6 38 65 35 81 75 96 排序后 6 12 17 19 20 22 24 29 33 34 35 38 39 40 42 43 43 46 50 50 54 54 55 56 56 60 61 65 66 67 70 71 71 73 73 75 75 76 78 79 81 81 82 85 87 89 89 92 94 96 Process finished with exit code 0

经验分享 程序员 微信小程序 职场和发展