Java对数组进行快速排序

public static void quickSort(int[] data, int low, int high) {
        int i, j, temp, t;
        if (low > high) {
            return;
        }
        i = low;
        j = high;
        temp = data[low];
        while (i < j) {
            //先看左边 依次往左递减
            while (temp <= data[j] && i < j) {
                j--;
            }
            //在看右边,依次往右递增
            while (temp >= data[i] && i < j) {
                i++;
            }
            if (i < j) {
                t = data[j];
                data[j] = data[i];
                data[i] = t;
            }
        }
        data[low] = data[i];
        data[i] = temp;
        //递归调用左半数据
        quickSort(data, low, j - 1);
        //递归调用右半数组
        quickSort(data, j + 1, high);
    }

    public static void main(String[] args) {
        int[] data = {3, 44, 54, 5, 23, 1, 33, 53, 5, 65, 29, 46, 78};
        System.out.println("排序前的:" + Arrays.toString(data));
        quickSort(data, 0, data.length - 1);
        System.out.println("排序后的:" + Arrays.toString(data));
    }

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