快速排序的实现

  快速排序的重要性不言而喻,原理什么的不再多说,google一下都很详细,许多面试中都重点考察,甚至还会要求迅速手写,今天码出快排的代码。

#include<iostream>
using namespace std;
void quicksort(int left,int right,int arr[])
{
	if(left > right)
		return ;
	int i,j,t,tmp;
	i = left;
	j = right;
	t = arr[left];
	while(i != j)
	{
		while(arr[j] >= t && i < j)
			j --;
		while(arr[i] <= t && i < j)
			i ++;
		if(i < j)
		{
			tmp = arr[i];
			arr[i] = arr[j];
			arr[j] = tmp;
		}
	}
	arr[left] = arr[i];
	arr[i] = t;
	quicksort(left,i - 1,arr);
	quicksort(i + 1,right,arr);
	
}
int main()
{
	int a[] = {5,7,4,2,9,0,8,1,3,6};
	quicksort(0,9,a);
	for(int i = 0;i < 10;i ++)
 		cout<<a[i]<<" ";
	cout<<endl;
	return 0;	
}

  

原文地址:https://www.cnblogs.com/coderchuanyu/p/4181366.html