在numpy中某处有插入排序吗?我的数组需要一个argsort,但是内置的quick,merge和heap不适合几乎排序的数组.
解决方法:
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尚未发布,但在发布时,您可以通过在sort调用中指定kind =’stable’或kind =’mergesort’来选择Timsort:
sorted = numpy.sort(unsorted, kind='stable')
这满足了您想要使用插入排序的“快速处理几乎排序的数据”角色,同时还利用了输入中的其他顺序,并且比插入排序具有更好的最坏情况行为.
较早的numpy版本do not have a fast method for nearly sorted data.