1. 程式人生 > 其它 >【演算法設計與分析】C++ 實現快速排序

【演算法設計與分析】C++ 實現快速排序

技術標籤:演算法設計與分析快速排序演算法

#include <iostream>

using namespace std;


int Partition(int a[], int left, int right)
{
	int i = left, j = right + 1;
	int k = a[left];
	while(1)
	{
		while(a[++i] < k && i < right);
		while(a[--j] > k);
		if(i >= j) break;
		int t = a[i];
		a[i] =
a[j]; a[j] = t; } a[left] = a[j]; a[j] = k; return j; } void QuickSort(int a[], int left, int right) { if(left < right) { int base = Partition(a, left, right); QuickSort(a, left, base - 1); QuickSort(a, base + 1, right); } } int main() { int arr[] = {1, 4, 3, 2, 5, 7, 6}; QuickSort
(arr, 0, 7); for(int i = 0; i < 8; i++) cout << arr[i] << " "; cout << endl; return 0; }