(
① 具體做法
第一步
R[i](即R[low])作為基准記錄
第二步
R[j]和基准R[i](即pivot)進行了交換
pivot;然後
相當於交換了R[i]和基准R[j]
針j自位置j
pivot放在此位置上就完成了一次劃分
②一次劃分過程
一次劃分過程中
③劃分算法
int Partition(SeqList R
{//調用Partition(R
//並返回基准記錄的位置
ReceType pivot=R[i]; //用區間的第
while(i while(i j--; //從右向左掃描,查找第1個關鍵字小於pivot.key的記錄R[j] if(i R[i++]=R[j]; //相當於交換R[i]和R[j],交換後i指針加1 while(i i++; //從左向右掃描,查找第1個關鍵字大於pivot.key的記錄R[i] if(i R[j--]=R[i]; //相當於交換R[i]和R[j],交換後j指針減1 } //endwhile R[i]=pivot; //基准記錄已被最後定位 return i; } //partition
From:http://tw.wingwit.com/Article/program/sjjg/201311/23788.html