我想按修改时间升序和降序对文件进行排序。
根据这个answer看起来这可以通过定义排序回调函数并使用 usort/uasort 来实现。
但是,由于我的应用程序的性质,我可能会遇到某些排序算法的最坏情况(例如几乎逆序的输入序列)。
因为每次比较都使用部分在网络驱动器上的两个文件系统访问,所以比较的次数很关键,必须尽量减少。其他种类的迭代可以更多。
那么 PHP 的数组排序函数使用什么排序算法呢?快排?多排序?有什么方法可以配置它吗?
我是否应该在排序之前打乱数组?
还是我需要自己编写实现?
您知道一些提供带有可配置算法的排序函数的优秀库吗?
您会推荐什么算法或方法来解决这个最小化比较的问题?
最佳答案
在 php.net/sort
我发现了这个:
Note: Like most PHP sorting functions, sort() uses an implementation of » Quicksort.
我相信它使用了 randomized quicksort ,所以不需要对数组进行洗牌。
我做了some tests并且 PHP 的快速排序不是随机的,所以打乱你的输入数组!!
关于php - PHP 的 usort 适用于哪些排序算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4907680/