首页 > 编程语言 > 详细

c++实现快排基础版本

时间:2020-07-15 22:23:20      阅读:60      评论:0      收藏:0      [点我收藏+]
#include <iostream>
#include<algorithm>
#include<vector>
using namespace std;
void swap(int& a, int& b) {
    int t = a;
    a = b;
    b = t;
}
void quicksort(vector<int>&ptr,int begin,int end) {
    
    
    if (begin < ptr.size() && end < ptr.size()) {
        int base = ptr[begin];
        int i = begin, j = end;
        /*for (auto a : ptr)
            cout << a << ends;
        cout << endl;*/
        //cout << i << " " << j << endl;
        if (begin < end) {
            while (i < j) {
                if (ptr[j] < base)
                {
                    if (ptr[i] > base) {
                        swap(ptr[i], ptr[j]);
                    }
                    else i++;

                }
                else j--;
            }
            swap(ptr[begin], ptr[i]);
            for (auto a : ptr)
                cout << a << ends;
            cout << endl;
            quicksort(ptr, begin, i - 1);
            quicksort(ptr, i + 1, end);
        }
    }
};

int main()
{
    vector<int>a{ 61,177,61,74,19,31,45,55,101,81 };
    for (auto i : a)cout << i << ends;
    cout << endl;
    quicksort(a,0,a.size()-1);
    for (auto i : a)cout << i << ends;
}

 

c++实现快排基础版本

原文:https://www.cnblogs.com/otakus/p/13307170.html

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