快速排序算法(从小到大排序)
#include <iostream>
using namespace std;
void qsort(int arr[], int low, int high){
if (high <= low) return;
int i = low;
int j = high + 1;
int key = arr[low];
while (true)
{
/*从左向右找大于等于key的值*/
while (arr[++i] < key&&i!=high){}
/*从右向左找小于等于key的值*/
while (arr[--j] > key&&j!=low){}
if (i >= j) break;
/*交换i,j对应的值*/
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
/*中间值与j对应值交换*/
int temp = arr[low];
arr[low] = arr[j];
arr[j] = temp;
qsort(arr, low, j - 1);
qsort(arr, j + 1, high);
}