本文介绍了快速排序算法不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用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);
	}
}

推荐答案


这篇关于快速排序算法不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-23 20:39
查看更多