numpy 中有插入排序吗?我的数组需要一个 argsort,但内置的 quick、merge 和 heap 不适合几乎排序的数组。
最佳答案
来自numpy 1.17.0 release notes :
Timsort has been implemented and is now used in place of mergesort. [...] Timsort features improved performace on already or nearly sorted data and performs like mergesort on random data.
截至撰写本文时,NumPy 1.17.0 尚未发布,但发布时,您将能够通过指定 kind='stable'
或 选择 Timsort kind='mergesort'
在 sort
调用中:
sorted = numpy.sort(unsorted, kind='stable')
这满足了您希望使用插入排序的“快速处理近乎排序的数据”的角色,同时还利用了输入中的其他顺序,并且在最坏情况下的行为比插入排序要好得多。
较早的 numpy 版本 do not have a fast method for nearly sorted data .
关于python - numpy中的插入排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5176060/