#include<iostream>
#include<vector>
using namespace std;
int sort(int left, int right, vector<int>& a);
void quick_sort(vector<int>& a, int left, int right) {
if (left >= right) return;
int mid = sort(left,right, a);//不要在这里出现什么0,right
quick_sort(a, left, mid - 1);//不要出现什么0,mid-1的沙雕操作,这是递归!
quick_sort(a, mid + 1, right);
}
int sort(int left, int right, vector<int>&a) {
int b = a[left];//一般用随机数下标
while (left < right) {
while (a[right] > b && left < right) right--;
a[left] = a[right];
while (a[left] < b && left < right) left++;
a[right] = a[left];
}
a[left] = b;
return left;
}
int main() {
int n, l;
vector<int>a;
cin >> n >> l;
//a = new int[n];
a.resize(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
quick_sort(a, 0, n - 1);
for(int i=0;i<n;i++){
cout<<a[i]<<endl;
}
}
第n次实现快排,真的是常做常新
最新推荐文章于 2024-08-03 18:54:56 发布