- 495 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 20:01:15 ]
- 9,6,4,7,12,14,1,11,10,15,3,5,8,13,2を小さいものから順に並び替える関数です。
0 #include<stdio.h> 1 void quicksort(int x[],int n){ 2 int m; 3 int *pa=x+2. *pz=x+n 4 if(n==2){ 5 if(x[1]>x[2])m=x[1],x[1]x[2],x[2]=m; 6 return; 7 } 8 while(pa<pz){ 9 while(pa<=x+n && *pa<x[1])pa++; 10 while(pz>=x+2 && *pz>=x[1])pz--; 11 if(pa<pz)m=*pa, *pa++=*pz, *pz--=m; 12 } 13 if(pa>x+2)m=x[1],x[1]=*(--pa),:pa=m; 14 if(pa-x>2)quicksort(x,pa-1-x); 15 if(x+n-pz>1)quicksort(pz.x+n-pz); 16 } これの8〜12行目の部分は、9行目で前から数列の6,4,7,12まで進み、 10行目で後ろから2まで進み、12と2を交換するという意味であってますか?
|

|