Posted on 2006-06-14 21:41
Enjoy Life 阅读(799)
评论(0) 编辑 收藏 引用 所属分类:
DS study
一趟快速排序算法描述:
int Patition(SqList &L, int low, int high){
//
交换顺序表
L
中子表
L.r[low...high]
的记录,使枢轴记录到位,并返回其所在位
//
置,此时它之前(后)的记录均不大(小)于它。
piovtkey=L.r[low].key;
while(low<high){
while(low<high && L.r[high].key>=piovtkey)
--high;
//
退出上面的循环,说明
L.r[high].key<piovtkey,
从而应该和
L.[row]
交
//
换即把比枢轴记录小的记录交换到低端
L.r[low]<---->L.r[high]
;
while(low<high && L.r[low].key <= piovtkey)
++low;
//
退出上面的循环,说明
L.r[high].key<piovtkey,
从而应该和
L.[row]
交
//
换即把比枢轴记录小的记录交换到低端
L.r[row]<----->L.r[high];
}
return low;//
此时
low == high
}//Patition