C++简单的快速排序

动画演示

在这里插入图片描述

代码实现

#include <iostream>

using namespace std;

//划分算法
int Partition(int arr[], int low, int height) {
    int pivot = arr[low];
    while (low < height) {
        while (low < height && arr[height] >= pivot) {
            --height;
        }
        arr[low] = arr[height];
        while (low < height && arr[low] <= pivot) {
            ++low;
        }
        arr[height] = arr[low];
    }
    arr[low] = pivot;
    return low;

}

//快速排序算法
void QuickSorting(int arr[], int low, int height) {
    if (low < height) {
        int pivotpos = Partition(arr, low, height);
        QuickSorting(arr, low, pivotpos - 1);
        QuickSorting(arr, pivotpos + 1, height);
    }

}


void PrintInfo(int arr[], int num) {
    for (int i = 0; i < num; ++i) {
        cout << arr[i] << " ";
    }
}

int main() {
    
    int arr[15] = {7, 5, 3, 1, 2, 9, 15, 6, 4, 8, 13, 11, 14, 12, 10};
    QuickSorting(arr, 0, 14);
    PrintInfo(arr, 15);

    return 0;
}

效果展示

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值