快速排序法1.java

来自「输入数组(int[] number)作为sort的参数调用sort 即可实现排序」· Java 代码 · 共 41 行

JAVA
41
字号
//快速排序法3优于1
//输入数组(int[] number)作为sort的参数调用sort 即可实现排序(不减序排列)
//或者利用重载的sort方法,输入参数是(int[] number, 0, number.length-1)
public class 快速排序法1 {
    public static void sort(int[] number) {
        sort(number, 0, number.length-1);
    }
    //重载
    private static void sort(int[] number, int left, int right) {
        if(left < right) { 
            int s = number[left]; 
            int i = left; //用时候是++i
            int j = right + 1; //用时候是--j,

            while(true) { 
                // 向右找 ,直到找到大于等于s
                while(i + 1 < number.length && number[++i] < s) ;  
                // 向左找 ,直到找到小于等于s
                while(j -1 > -1 && number[--j] > s) ;  
                if(i >= j) 
                    break; 
                swap(number, i, j); 
            } 

            number[left] = number[j]; 
            number[j] = s; 

            sort(number, left, j-1);   // 對左邊進行遞迴 
            sort(number, j+1, right);  // 對右邊進行遞迴 
        }
    }
    
    //在数组number中交换下标为i、j的元素,其他元素保存不变
    private static void swap(int[] number, int i, int j) {
        int t; 
        t = number[i]; 
        number[i] = number[j]; 
        number[j] = t;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?