1064-快速排序
描述
?
給定輸入排序元素數目n和相應的n個元素,寫出程序,利用內排序算法中快速排序算法進行排序,并輸出排序最后結果的相應序列。
?
輸入
?
共兩行,第一行給出排序元素數目n,第二行給出n個元素,1≤n≤100000,每個元素值范圍為 [0,100000)
?
輸出
?
一行,輸出排序結果。
?
樣例輸入
7
48 36 68 72 12 48 2
樣例輸出
2 12 36 48 48 68 72
#include<stdio.h> #include<stdlib.h> int qkpass(int *r,int left,int right) {int i,j, x=r[left];i=left;j=right;while(i<j){while(i<j&&r[j]>=x)j--;if(i<j){r[i]=r[j];i++;}while(i<j&&r[i]<x)i++;if(i<j){r[j]=r[i];j--;}}r[i]=x;return i; }void qksort(int*r,int i,int j) {int p;if(i<j){p=qkpass(r,i,j);qksort(r,i,p-1);qksort(r,p+1,j);} } int main() {int i,*r,len;scanf("%d",&len);r=(int*)malloc(len*sizeof(int));for(i=0;i<len;i++)scanf("%d",&r[i]);qksort(r,0,len-1);for( i=0;i<len-1;i++)printf("%d ",r[i]);printf("%d\n",r[len-1]);free(r);return 0; }
轉載于:https://www.cnblogs.com/Rosanna/p/3436699.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: 考月嫂证要多少钱啊?
- 下一篇: 做了输卵管通液一般多久可以备孕要小孩子?