Java快速排序算法

来源:互联网 发布:乐乎青年公寓官网 编辑:程序博客网 时间:2024/06/01 09:00
public class Main {    //快速排序    public static void Query(int[] nums, int start, int end) {        //防御参数错误        if (start < 0 || end > nums.length || start >= end) {            return;        }        int initial = nums[start];//基准数        int i = start;        int j = end;        while (i != j) {            //从后往前            if (initial < nums[j]) {                j--;            }            //从前往后            if (initial > nums[i]) {                i++;            }            //i、j值交换            int tmp = nums[i];            nums[i] = nums[j];            nums[j] = tmp;        }        //和基准数互换        if (nums[i] < initial) {            nums[start] = nums[i];            nums[i] = initial;        }        //递归        Query(nums, start, i - 1);        Query(nums, i + 1, end);    }    public static void main(String args[]) {        int nums[] = new int[]{6, 8, 1, 3, 9, 4, 2, 7, 10, 5};        Query(nums, 0, nums.length - 1);        for (int i = 0; i < nums.length; i++) {            System.out.print(" " + nums[i]);        }    }}

原创粉丝点击