首页 > 编程语言 > 详细

快速排序

时间:2020-05-09 19:57:34      阅读:60      评论:0      收藏:0      [点我收藏+]

1.各种排序算法时间复杂度

技术分享图片

2.快排思路图(分治思想)

 

 技术分享图片

3.代码实现

#include <iostream>
#include <algorithm>

using namespace std;

const int N = 1e5 + 10;
int n;
int a[N];

void qsort(int left, int right)
{
    int l = left, r = right;
    int mid = a[(l + r) >> 1];
    while (l <= r)
    {
        while (a[l] < mid) l++;
        while (a[r] > mid) r--;
        if (l <= r)
        {
            swap(a[l], a[r]);
            l++;
            r--;
        }
    }
    if (l <= right) qsort(l, right);
    if (left <= r) qsort(left, r);
}

int main()
{
    ios::sync_with_stdio(false);
    cin >> n;
    for (int i = 1; i <= n; i++) cin >> a[i];
    qsort(1, n);
    for (int i = 1; i <= n; i++) cout << a[i] <<  ;
    return 0;
}

 

快速排序

原文:https://www.cnblogs.com/fhrmzq/p/12859365.html

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