快速排序

c++模板函数

template <typename T>
int _quickSort(T* list, int low, int heigh)
{
    if (low >= heigh) { return low; }

    T temp = list[low];
    while (low < heigh)
    {
        while ((list[heigh] >= temp) && (low < heigh))
        {
            --heigh;
        }

        if (low < heigh)
        {
            list[low] = list[heigh];
            ++low;
        }

        while ((list[low] <= temp) && (low < heigh))
        {
            ++low;
        }

        if (low < heigh)
        {
            list[heigh] = list[low];

            --heigh;
        }
    }

    list[low] = temp;

    return low;
}

template <typename T>
void QuickSort(T* list, int low, int heigh)
{
    if (low >= heigh) { return; }

    int a = _quickSort(list, low, heigh);
    QuickSort(list, low, a - 1);
    QuickSort(list, a + 1, heigh);
}

test

int main()
{
    int sort[] = {6, 56, 1, 23, 35, 42, 14, 6, 7, 4};

    QuickSort(sort, 0, (sizeof(sort) - 1) / sizeof(int));

    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值