quicksort
スポンサーリンク
覚えてしまえば一番よく使うと思われるソート。
個人的には基本ソートの中ではマージソートに続いて難しい。
void qsort(int data[],int start,int end); //*プロトタイプ宣言*// void sort(int input[],int output[],int size) { int i; for(i=0;i<size;i++) {output[i]=input[i];} qsort(output,0,size-1); } //*再起関数qsort*// void qsort(int data[],int start,int end) { int i,j; int m; int temp; if(end-start<=1) {return ;} else { i=start; j=end; m=data[start]; while(i<j) { for(;data[i]<m;i++); for(;data[j]>m;j--); if(i<j) { temp=data[i]; data[i]=data[j]; data[j]=temp; } } if(i==j) { qsort(data,start,i-1); qsort(data,i+1,end); } else { qsort(data,start,j); qsort(data,i,end); } } }