快速排序代碼ios
// 快速排序.cpp : 定義控制檯應用程序的入口點。 // #include "stdafx.h" #include<iostream> using namespace std; int RandomInRange(int min, int max) { int random = rand() % (max - min + 1) + min; return random; } /* * 交換elem1, elem2的值 */ void Swap(int *elem1, int *elem2) { int temp = *elem1; *elem1 = *elem2; *elem2 = temp; } int Partition(int data[], int length, int start, int end) { if(data == NULL || length <= 0 || start < 0 || end >= length) { throw new std :: exception("Invalid Parameters!"); } int index = RandomInRange(start, end); Swap(&data[index], &data[end]); int small = start - 1; for(index = start; index < end; ++index) { if(data[index] < data[end]) { ++small; if(small != index) { Swap(&data[index], &data[small]); } } } ++small; Swap(&data[small], &data[end]); return small; } void QuickSort(int data[], int length, int start, int end) { if(start == end) { return; } int index = Partition(data, length, start, end); if(index > start) { QuickSort(data, length, start, index - 1); } if(index < end) { QuickSort(data, length, index + 1, end); } } int main() { int a[]={4,6,8,1,2,9,3,7,5}; QuickSort(a,9,0,8); for(int i=0;i<9;i++) cout<<a[i]; system("pause"); return 0; }