简介:
快排相比冒泡等相对较快,是因为其是跳跃式交换(快,要根据数据量等)
下面算法介绍:
①根据数据量,若大于cutoff,则用快排,反之用插入排序
②先找基准(这里采用中位数),并将基准放在Right-1的位置(Right放比较三个数最大那个)
③从左边向右开始找,若找到比基数大的(则左边指针停下);然后从右边开始向左找,若找到比基数小的(则右边指针停下);
④交换左右指针所指的数
⑤循环,③~⑤,直至基本有序,跳出
⑥将Right-1的数(即基数) 与 中间交换
⑦分左右两边子递归,重复①~⑥
##include<cstdio>
##include<algorithm>
using namespace std;
##define MAXN 110
void Swap(int *a, int *b){