1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。
//快速排序
void Quick_Sort(int* arr, int begin, int end) {
if (begin > end)
return;
int tmp = arr[begin];
int left = begin;
int right = end;
while (left != right) {
while (arr[right] >= tmp && right > left)
right--;
while (arr[left] <= tmp && right > left)
left++;
if (right > left) {
int t = arr[left];
arr[left] = arr[right];
arr[right] = t;
}
}
arr[begin] = arr[left];
arr[left] = tmp;
Quick_Sort(arr, begin, left - 1);
Quick_Sort(arr, left + 1, end);
}