引出
最近在一个项目中, 需要对一个数组的顺序进行调整, 允许手动将某一个元素提到数组的开头位置...., 不能够保证两个元素的位置不变....如果要选择一款既能够保证稳定性, 时间复杂度又小的算法, 二者取交集也得选择 归并 吧....分析
既然确定了usort函数是不稳定的排序, 那么他到底是如何进行排序的呢? 我决定尝试着到PHP的源码中挑战一下....不过, 虽然代码没看懂, 但是, 排序选择的算法我知道了
若数组长度小于等于16, 使用 插入排序
若数据长度大于16, 使用 快速排序 (快速排序对元素个数1024前后做了不同的处理, 应该是优化)