在这里, 使用了PHP中的usort函数进行了数组的排序, 代码大致如下:
usort($arr, function ($a, $b){
// 这里添加了 order 字段, 默认为0, 将order...但是, 我记得我之前也测试过, 数组顺序没有变化啊, 我尝试将数组的长度缩小为4, 突然发现, 是我错了.
分析
既然确定了usort函数是不稳定的排序, 那么他到底是如何进行排序的呢?...RETURN_BOOL(retval);
}
简单看了一下, 找到真正的排序方法zend_hash_sort, OK, 再去这个函数里看看....当数组长度100的时候, 使用了不稳定的快速排序.
之后使用usort函数, 就把他当做不稳定的就可以了. 这样基本不会有问题的. 但是, 讲话了, 如果我就是需要一个稳定的排序算法怎么办?...最后, 当我google找了一下, 发现第一条搜索就告诉了我, PHP的排序对不同长度分别使用了不同的排序算法. 这就尴尬了. 么事, 虽然最后对算法也没完全看懂, 但乐在其中