クイックソートの考え方

536 ワード

≪クイック・ソート|Quick Sort|oem_src≫:クイック・ソートは、シーケンス全体を1つの値にしてから、このシーケンスの中でこの値より大きいものを右に、この値より小さいものを左に置きます.例えば、シーケンス:5 8 6 7 8 1 5 3 8 9 4を4に基準として並べ替えた後のシーケンスは、1 3 2【4】5 8 6 7 8 8 8 8 8 9左が小さく、右が大きい再帰主コード:public static void qk(int m 1,int m 2){int i,j;if(m 1 i=m 1;j=m 2;ar[0]=ar[i];//i番目の個数を基数while(i!=j){while(ar[j]>=ar[0]&j>i)と定義する//右から左への個々の検査が基数jより大きいか否か-;if(iiはヘッダar[i]=ar[j];i++;}while(ar[i]<=ar[0]&&j>i)/左から右への個々の検査が基数より小さいi++;if(i ar[j]=ar[i];j—}}ar[i]=ar[0];qk(m 1,i-1);qk(i+1,m 2);}
}