直接上代码:
- 写法一:使用双向扫描法划分
#include<iostream>
using namespace std;
//三个参数:要排序的数组,数组最左边的数下标和最右边的数下标
void quickSort(int a[], int left, int right) {
if (left < right) {
//如果左边的数下标不小于右边的数下标则结束排序
//声明三个变量用来存放当前循环的数组,l为最左边的数,r为最右边的数,temp为第一个数值作为参考值(称为主元)
int l = left, r = right, temp = a[left];
while (l < r) {
//循环直至r>=l
//首先从右往左查找直至找到小于主元的数
while (l < r && a[r] >= temp)
r--;
if (l < r)