#include<iostream>
#include<cstdlib>
#define max 1000005
int array[max];
using namespace std ;
void swap(int *list,int n ,int m) //交换数列中哦的数字
{
int temp ;
temp = list[n];
list[n]=list[m];
list[m]=temp;
}
void QuickSort(int *list ,int left ,int right)
{
if(left<right) {
int ram =rand()%(right-left+1)+left;
int flag = list[ram]; //产生随机数,设置为标记
swap(list,ram,left);
int i = left ;
int j = right;
while(i<j) {
do i++;while(list[i]<=flag);
while(list[j]>flag) j--;
if(i<j) swap(list,i,j);
}
swap(list,left,j);
QuickSort(list,left,j-1);
QuickSort(list,j+1,right);
}
}
int main()
{
int number;
scanf("%d",&number);
for(int i=0;i<number;i++)
scanf("%d",&array[i]);
QuickSort(array,0,number-1);
for(int i=0;i<number;i++)
printf("%d ",array[i]);
printf("\n");
system("pause");
return 0 ;
}
|