C++版的快排

超级精简的快排,一看就懂

直接上代码

#include <iostream>
using namespace std;
//index左边比他小,右边比他大
int index(int begin, int end, int* arr) {
    int tmp = arr[begin];
    while (begin < end) {
        while (begin<end&&tmp <= arr[end]) end--;
        if(begin<end)arr[begin++] = arr[end];
        while (begin<end && tmp > arr[begin]) begin++;
        if (begin < end)arr[end--] = arr[begin];
    }
    arr[begin] = tmp;
    return begin;
}
//递归
void quick_sort(int begin,int end,int *arr) {
    if (begin < end) {
        int ind = index(begin, end, arr);
        quick_sort(begin, ind - 1, arr);
        quick_sort(ind + 1, end, arr);
    }
}
int main()
{
    int a[10] = { 1,5,7,9,2,1,4,3,55,4 };
    quick_sort(0, 9, a);
    for (int i = 0; i < 10; i++) {
        cout << a[i]<<" ";
    }
    cout << endl;
    system("pause");
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值