C++实现快速排序算法

#include<iostream>
using namespace std;


int arr[10] = { 2,8,3,9,1,4,6,7,0,5 };
void swap(int *a, int *b)
{
	int temp = *a;
	*a = *b;
	*b = temp;
}

void show(int *arr,int n)
{
	for (size_t i = 0; i < n; i++)
	{
		cout << arr[i] << " ";
	}
	cout << endl;

}


void quicksort(int *arr, int iLeft, int iRight)
{
	int i = iLeft;
	int j = iRight + 1;
	if (i<j)
	{
		do
		{
			do
			{
				i++;
			} while (i<iRight&&arr[i]>=arr[iLeft]);

			do
			{
				j--;
			} while (j>iLeft&&arr[j]<=arr[iLeft]);

			if (i<j)
			{
				swap(arr[i], arr[j]);
			}

		} while (i<j);

		swap(arr[j], arr[iLeft]);
		quicksort(arr, iLeft, j - 1);
		quicksort(arr, j + 1, iRight);

	}
	



}
int main(int argc, char *argv[])
{
	quicksort(arr, 0, 10 - 1);
	show(arr,10);

	system("pause");
	
}

猜你喜欢

转载自blog.csdn.net/haku_yyf/article/details/79516713