快速排序的问题
快排假如我选第一个元素为参考点,则从后往前扫;快排假如我选最后一个元素为参考点,则从前往后扫;快排假如我选第一个元素,最后一个元素,中间元素中的最小者为参考点(而且刚好是中间值时),是不是先往左,
还是先往右都没关系?
还有个问题就是:我选第一个元素为参考点,但我还是想从前往后扫,应该怎么处理?
谢谢大家,有代码做参考更好!!!
2012-10-12 10:25
程序代码:void Quicksort(int b[], int low, int high)
{
int i,j;
int t;
if(low<=high)
{
t=b[low];
i=low;
j=high;
while(i!=j)
{
while(i<j&&b[i]<=t)
i++;
if(j>i)
{
b[j]=b[i];
j--;
}
while(i<j&&b[j]>=t)
j--;
if(j>i)
{
b[i]=b[j];
i++;
}
}
b[i]=t;
Quicksort(b,low,i-1);
Quicksort(b,i+1,high);
}
}:
2012-10-12 16:06
2012-10-13 08:48
2012-10-13 08:49