快速排序
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte 总提交 : 1125 测试通过 : 426
比赛描述
给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中快速排序算法进行排序,并输出排序最后结果的相应序列。
输入
共两行,第一行给出排序元素数目n,第二行给出n个元素,1≤n≤100000,每个元素值范围为 [0,100000)
输出
一行,输出排序结果。
样例输入
748 36 68 72 12 48 2
样例输出
2 12 36 48 48 68 72
提示
数据结构A实验四
题目来源
CHENZ
//AC:
1 #include2 int num[100100] ; 3 int Partition(int array[], int left, int right) //快排 ; 4 { 5 int i, j ; 6 int temp ; 7 j = left - 1 ; 8 for(i = left; i<=right; i++) 9 {10 if(array[i] <= array[right])11 {12 j++ ;13 temp = array[j] ;14 array[j] = array[i] ;15 array[i] = temp ;16 }17 }18 return j ; 19 } 20 void QuickSort(int array[], int left, int right)21 {22 int pivot ;23 if(left < right)24 {25 pivot = Partition(array, left, right) ;26 QuickSort(array, left, pivot-1) ;27 QuickSort(array, pivot+1, right) ; 28 } 29 } 30 int main()31 {32 int n, i ;33 while(~scanf("%d", &n))34 {35 for(i=0; i