参考:
https://blog.csdn.net/qq_28584889/article/details/88136498
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void swap(int &a, int &b)
{
int tmp;
tmp = a;
a = b;
b = tmp;
return;
}
int quick_sort(vector<int> &a, int left, int right)
{
int ret = 0;
if (left >= right) {
ret = 1;
return ret;
}
if (a.empty()) {
ret = 2;
return ret;
}
int i = left, j = right;
int base = a[i];
while (i < j) {
while (a[j] >= base && i < j) {
j--;
}
while (a[i] <= base && i < j) {
i++;
}
if (i < j) {
swap(a[i], a[j]);
}
}
a[left] = a[j];
a[j] = base;
quick_sort(a, left, j-1);
quick_sort(a, j+1, right);
return ret;
}
int main(int argc, char **argv)
{
int ret = 0;
int tmp = 0;
vector<int> ve;
cout << "please input your array, end with #" << endl;
/* 只要输入类型和tmp匹配,那么cin就返回真,while循环就会一直继续下去 */
while (cin >> tmp) {
ve.push_back(tmp);
}
cout << "before sort, array is:";
for (int i = 0; i < ve.size(); i++)
cout << ve[i] << " ";
cout << endl;
ret = quick_sort(ve, 0, ve.size()-1);
if (!ret) {
cout << "after sort, array is:";
for (int i = 0; i < ve.size(); i++)
cout << ve[i] << " ";
cout << endl;
} else {
cout << "error occured, errno " << ret << endl;
}
return ret;
}