本文介绍了快速排序算法不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用Hoare的分区开发快速排序.因此,它可以处理100个未排序的数据,但不能处理1000个数据.这是我的源代码.如果您将其正确设置,我将非常感谢.
I''m trying to develop quick sort using Hoare''s partitioning. So it works on 100 unsorted data but 1000 data it''s not working I guess. Here is my source code. I''d really really appreciate if you make it correct.
int partition( int a[], int low, int high )
{
int piwot, right, left;
left = low+1 ;
right = high ;
piwot = a[low];
while(1)
{
while(a[right] > piwot) right--;
while(a[left] < piwot && left < high) left++;
if( left < right)
swap(a, left, right);
else{
swap(a, low, right);
return right;
}
}
}
void quickSort(int a[], int low, int high)
{
int part;
if(low < high)
{
part = partition(a, low, high);
quickSort(a, low, part-1);
quickSort(a, part+1, high);
}
}
推荐答案
这篇关于快速排序算法不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!