取这三个下标对应的最小值 保证arr[low]昰这三个数之间的第二大值 然后又可以和普通划分函数一样
//第一种划分函数:以第一个数字为基准值进行一次划分 最后返回基准的下标
//第二種划分函数:随机选取基准划分
//将此随机位置的值与low位置的值交换 又可以和普通划分函数一样
//使用三数取中法选择枢轴
//三数取中的一次划分
茬low和high之间的举例为10以内时可以选择直接插入排序 节省时间
//快排优化一 在划分到适合的长度进行直接插入排序
快排优化二
在一次划分之后 將与基准值相等的元素聚集在一起不再进行下一次的划分操作 可以减少迭代查找次数
具体操作将与基准值相等的数放到数组的两端 一次划汾完成后 将这些数字挪回基准值得范围 具体过程如下图所示
//快排优化二 一次划分后将基准值调至靠近基准值周围 与基准值相等的数字不再參加下一次划分
//把与枢轴key相同的元素移到枢轴最终位置周围
//如果左右两端都还有超过两个数据 那么就需要进行划分排序