快速排序java版

来源:互联网 发布:java swing 做成exe 编辑:程序博客网 时间:2024/04/27 14:26
<span style="font-size:18px;">public class MainTest {final static int length = 10; // 数组长度static int[] nums = new int[length];public static void main(String[] args) {// 生成随机数Random random = new Random();for (int i = 0; i < length; i++) {nums[i] = random.nextInt(100);}System.out.println("排序前:");for (int i = 0; i < length; i++) {System.out.print(nums[i] + "  ");}System.out.println(); // 换行quickSort(nums, 0, length - 1);System.out.println("排序后:");for (int i = 0; i < length; i++) {System.out.print(nums[i] + "  ");}}private static void quickSort(int[] nums, int start, int end) {        if(start>=end){            return;        }                int i = start;        int j = end;        int key = nums[i];        boolean isEnd = true;        while (i <= j) {        System.out.println("i= " + i);        System.out.println("j= " + j);            if (isEnd) {                if (nums[j] < key) {                int temp; //  临时变量                    temp = nums[i];                    nums[i] = nums[j];                    nums[j] = temp;                    isEnd=false;                } else {                    j--;                }            }else{                if(nums[i] > key){                int temp; // 临时变量                    temp = nums[i];                    nums[i] = nums[j];                    nums[j] = temp;                    isEnd=true;                }else{                    i++;                }            }        }         snp(nums);        quickSort(nums, start, j-1);        quickSort(nums, i+1, end);            }    private static void snp(int[] nums) {        for (int i = 0; i < nums.length; i++) {            System.out.print(nums[i] + " ");        }        System.out.println();    }}</span>


1 0