首页 > 编程语言 > 详细

快速排序

时间:2021-09-03 19:56:37      阅读:17      评论:0      收藏:0      [点我收藏+]
#include <iostream>

using namespace std;

void Print(int arr[], int n) {
    for (int i = 0; i < n; ++i) {
        cout << arr[i] << ‘ ‘;
    }
    cout << endl;
}

int Pivot(int arr[], int left, int right) {
    int key = arr[left];
    int l = left, r = right;

    while (l < r) {
        while (l < r && key <= arr[r]) {
            --r;
        }
        arr[l] = arr[r];

        while (l < r && key >= arr[l]) {
            ++l;
        }
        arr[r] = arr[l];
    }

    arr[l] = key;
    return l;
}

void QuickSort(int arr[], int left, int right) {
    if (left < right) {
        int p = Pivot(arr, left, right);
        QuickSort(arr, left, p - 1);
        QuickSort(arr, p + 1, right);
    }
}

int main() {
    int n = 10;
    int arr[] = {5,3,1,7,2,4,8,6,3,4};
    cout << "before sorted: ";
    Print(arr, n);
    cout << "after sorted: ";
    QuickSort(arr, 0, n - 1);
    Print(arr, n);

    system("pause");
    return 0;
}

快速排序

原文:https://www.cnblogs.com/foghorn/p/15221926.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!