快速排序的实现

  快速排序的重要性不言而喻,原理什么的不再多说,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;	

}

  

你可能感兴趣的:(快速排序)