QuickSort
关于quickSort 的解释
https://www.youtube.com/watch?v=Hoixgm4-P4M
#include <iostream>
using namespace std;
void swap(int& a, int& b){
}
void Qsort(int arr[],int low, int high){
if(high<=low)
return;
else{
int i = low;
int j = high;
int key = arr[low];
while(true){
//从左向右找比key大的值
while(arr[i] <= key){
i++;
if(i == high)
break;
}
//从右往左找比key小的数
while(arr[j] >= key){
j--;
if(j == low)
break;
}
if(i >= j)
break;
swap(arr[i], arr[j]);
}
arr[low] = arr[j];
arr[j] = key;
Qsort(arr, low, j-1);
Qsort(arr,j+1,high);
}
}
int main()
{
int a[] = {57, 68, 59, 52, 72, 28, 96, 33, 24};
Qsort(a, 0, sizeof(a) / sizeof(a[0]) - 1);/*这里原文第三个参数要减1否则内存越界*/
for(int i = 0; i < sizeof(a) / sizeof(a[0]); i++)
{
cout << a[i] << " ";
}
return 0;
}/*参考数据结构p274(清华大学出版社,严蔚敏)*/