划分函数

int partition(int* &sort,int low,int high)
{
int x, i, j;
x = sort[high];
i = low - 1;


for(j = low;j{
if(sort[j] < x)
{
i++;
k = sort[j];
sort[j] = sort[i];
sort[i] = k;
}
}
k = sort[i+1];
sort[i+1] = sort[high];
sort[high] = k;
return i+1;
}

算法思想是,j在前面找小于x(这里选择最后一个)的元素,找到了就丢给i+1,然后i自加一,如此下去到找完为止

0 评论: