0
点赞
收藏
分享

微信扫一扫

八大排序-快速排序

亿奇学 2022-01-09 阅读 77

快速排序(O(nlogn)):将数组第一个数当做基准数,定义两个指针分别指向待排序数组的左右两段,移动右边指针找到比基准数小的数停止,移动左边指针找到比基准数大的数停止,之后两个指针的值互换,继续寻找至两个指针重合,重合的数值和基准数互换。原第一个数到达正确位置,其左右进行递归快排。

 public static void quickSort(int[] arr,int left,int right){
        if(left >= right){
            return;
        }

        int base =arr[left];
        int i =left;
        int j =right;
        while(i!=j){
            while(arr[j] >=base && i<j){
                j--;
            }
            while(arr[i] <=base && i<j){
                i++;
            }
            int temp =arr[i];
            arr[i]=arr[j];
            arr[j]=temp;
        }
        arr[left]=arr[i];
        arr[i]=base;

        quickSort(arr,left,i-1);
        quickSort(arr,i+1,right);
    }
举报

相关推荐

0 条评论