, 挑选的数 a , 如果数组元素为 a , 则该元素即可以在左边 , 又可以在右边 ;
如果数组中除几个数之外 , 其它全都是一样的数 , 如 [1,1,1,1,1,1,1,2] , 挑选数字时...;
取中心点, 一般取 start 与 end 索引的 中心索引对应的数组元素值 ;
如下取中间值是强行指定的, 也可以随机指定 , 指定 start 与 end 之间的一个随机值 ;
尽量不选取...start 和 end 索引的值 , 如果选取开始/结束值 , 作为分割点 , 假如该数组是按照升序或降序排列 , 可能出现极端情况 ;
指针限制条件 , 分割遍历时的两个指针的条件是 left <=...分割操作第一步 : 取中心点
// 取中心点, 一般取 start 与 end 索引的中心索引对应的数组元素值
// 如下取中间值是强行指定的, 也可以随机指定 , 指定...start 与 end 之间的一个随机值
// 尽量不选取 start 和 end 索引的值
int pivot = array[(start + end) / 2];