Python numpy中的插入排序?

Python numpy中的插入排序?,python,numpy,sorting,scipy,insertion-sort,Python,Numpy,Sorting,Scipy,Insertion Sort,numpy中有插入排序吗?我的数组需要argsort,但内置的quick、merge和heap不适用于近似排序的数组。将numpy.searchsorted与numpy.insert一起使用如何: 来自: Timsort已经实现,现在已取代mergesort使用。[…]Timsort改进了对已排序或接近排序的数据的性能,并在随机数据上执行类似于mergesort的操作 在撰写本文时,NumPy 1.17.0尚未推出,但当推出时,您可以通过在排序调用中指定kind='stable'或kind='

numpy中有插入排序吗?我的数组需要argsort,但内置的quick、merge和heap不适用于近似排序的数组。

numpy.searchsorted
numpy.insert一起使用如何:

来自:

Timsort已经实现,现在已取代mergesort使用。[…]Timsort改进了对已排序或接近排序的数据的性能,并在随机数据上执行类似于mergesort的操作

在撰写本文时,NumPy 1.17.0尚未推出,但当推出时,您可以通过在
排序
调用中指定
kind='stable'
kind='mergesort'
来选择Timsort:

sorted = numpy.sort(unsorted, kind='stable')
这满足了您希望使用插入排序的“快速接近排序的数据”角色,同时还利用了输入中的其他顺序,并且具有比插入排序更好的最坏情况行为


早期的numpy版本。

我认为
searchsorted
需要一个完全排序的列表,而不仅仅是“几乎排序”@shang:当然,JoshAdel的意思是可以通过在不断增加的子集上迭代调用这两个方法来实现插入排序。您能解释一下为什么标准排序方法“不合适”?@JoshAdel很好地展示了可用的算法quicksort、mergesort、,对于几乎排序的数据,heapsort都比插入排序具有更高的复杂性。现在我给出了肯定的答案。您介意接受吗?感谢@user2357112改进了我的答案。