排序算法之快速排序

快速排序算法是一种基于交换的高效的排序算法,它采用了分治法的思想:
1、从数列中取出一个数作为基准数(枢轴,pivot)。 
2、将数组进行划分(partition),将比基准数大的元素都移至枢轴右边,将小于等于基准数的元素都移至枢轴左边。
3、再对左右的子区间重复第二步的划分操作,直至每个子区间只有一个元素

/******************
快速排序
****************************/
template
int partition(T arr[],int start,int end)
{
	T pivot = arr[start];
	while(start < end)
	{
		while(start
void quicksort(T arr[],int start,int end)
{
	if (start>=end)
	{
		return;
	} 
	else
	{
		int pivotpos = partition(arr,start,end);
		quicksort(arr,start,pivotpos-1);
		quicksort(arr,pivotpos+1,end);
	}
}

 

你可能感兴趣的:(C++,算法)