快速排序其实就是冒泡的一种改进版本.
他是不稳定的一种排序方法.
合理的用分治的思想处理排序问题.
#include
#include
#include
#define maxn 1<<10
using namespace std;
int arr[maxn];
void qsort(int a[],int left,int right) {
if(left >= right) {
return;
}
int i = left, j = right, key = a[left];
while(i < j) {
while(i < j && key <= a[j]) --j;
a[i] = a[j];
while(i < j && key >= a[i]) ++ i;
a[j] = a[i];
}
a[i] = key;
qsort(a,left, i - 1);
qsort(a,i + 1, right);
}
int main()
{
freopen("in.txt","r",stdin);
int num;
while(~scanf("%d",&num) && num > 0) {
//memset(a,0,maxn);
for(int i = 0;i< num;i++) scanf("%d",arr + i);
qsort(arr,0,num - 1);
for(int i = 0;i< num;i++) printf("%d ",arr[i]);
printf("\n");
}
return 0;
}