快排java

package leetcode;

public class quikSort {
    public static int[] quickSort(int[] list1,int left,int right){
        if(left>right){
            return null;
        }
        int i = left;
        int j = right;
        int pivot=list1[left];
        while (i<j){
            while (pivot<=list1[j] && i<j){
                j--;
            }
            if (i<j){
                list1[i++]=list1[j];
            }
            while (pivot>list1[i] && i<j){
                i--;
            }
            if (i<j){
                list1[j--]=list1[i];
            }
        }
        list1[i]=pivot;
        quickSort(list1,left,i-1);
        quickSort(list1,i+1,right);
        return list1;
    }

    public static void main(String[] args){
        int list2[]={10,13,9,5,14,18};
        int len = list2.length-1;
        int [] list3 = quickSort(list2,0,len);
        for (int i=0;i<len+1;i++){
            System.out.print(list2[i]+"-");
        }
    }
}

结果:

5-9-10-13-14-18-
Process finished with exit code 0

不理解的可以看看:https://blog.csdn.net/morewindows/article/details/6684558

时间复杂度:nlogn

猜你喜欢

转载自blog.csdn.net/WxyangID/article/details/83449037