2020.4.20之算法系列:1.快速排序的思想

10(0)

5(1)

6(2)

84(3)

55(4)

1(5)

5(6)

22(7)

48(8)

20(9)

 利用第一个数作为基准值,temp = 10;high--;直到arr[6]=5;则此时arr[0]=5;

low++直到arr[3] = 84;则arr[6] = 84;high--直到arr[5] = 1,则arr[3] = 1;low++直到arr[4]=55,arr[5] = 55;

arr[4] = 10;

5

5

6

1

10

55

84

22

48

20

void partion(vector<int>& nums,int left,int right){
    if(left<right){
        int temp = nums[left];
        int low = left;
        int high = right;
        while(low<high){
            while(low<high&&nums[high]<temp){
                high--;
            }
            nums[low] = nums[high];
            while(low<high&&nums[low]<=temp){
                low++;
            }
            nums[high] = nums[low];
        }
        nums[low] = temp;
        partion(nums,left,low-1);
        partion(nums,low+1,right);
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值