/*
分区
算法将数组
a[1],...,a[j]
进行分区,方法是在下标h处插入val = a[i],这个位置正是数组排序后它应处的位置。当算法结束时,下标比h小的单元的值小于val,而下标比h大的单元的值大于或等于val,算法送 回下标h
*/
InputParameters:a,i,j
OutputParameter:a
partition(a,i,j){
val = a[i]
h =i
for k = i+1 to j
if(a[k] < val){
h = h+1
swap(a[h],a[k])
}
swap(a[i],a[h])
return h
}