关于qsort

来源:百度知道 编辑:UC知道 时间:2024/06/10 12:45:45
C语言的qsort函数需要另一个(用来做什么的)函数吧。。。
谁给提供一个看看。。。

楼主说的是Partition吧,就是划分函数,将数组划分为大于中间位置元素(其它元素也可以,自己选择)和小于它的两部分,我原来写过一个:
int partition(int* &sort,int low,int high)
{
int x, i, j;
x = sort[high];
i = low - 1;

for(j = low;j<high;++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自加一,如此下去到找完为止