快速排序
C++的算法函数中有个sort排序,之前有个题是要用快排的,我用的是sort也没过,我不会,现在抽个空把快排补上。
题目链接:快速排序
代码:
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
const int maxn = 1e3;
int a[maxn];
int n;
void quick_sort(int low, int high){
if(low >= high) return;
int l = low;
int r = high;
int temp = a[low];
while(l < r){
while(a[r] > temp && l < r) r--;
while(a[l] <= temp && l < r) l++;
if(l < r){
swap(a[r], a[l]);
}
}
swap(a[low], a[l]);
quick_sort(low, l - 1);
quick_sort(l + 1, high);
}
int main(){
int cnt = 0;
while(true){
scanf("%d", &a[cnt]);
if(a[cnt] == 0){
break;
}
cnt++;
}
quick_sort(0, cnt - 1);
for(int i = 0; i < cnt; i++){
printf("%d ", a[i]);
}
printf("\n");
return 0;
}