summaryrefslogtreecommitdiff
path: root/numpy/core/fromnumeric.py
diff options
context:
space:
mode:
authorJulian Taylor <jtaylor.debian@googlemail.com>2016-07-21 21:44:27 +0200
committerJulian Taylor <jtaylor.debian@googlemail.com>2016-07-21 23:07:48 +0200
commitc3cea4558bb37ba1e6a7a045c108081a88a88691 (patch)
tree12daecdb9edf4e5f0f6047ba47c11cd50b27d571 /numpy/core/fromnumeric.py
parentf3c994a3510ff96fbc519b5dc28c27d2fd6ace76 (diff)
downloadnumpy-c3cea4558bb37ba1e6a7a045c108081a88a88691.tar.gz
ENH: turn quicksort into introsort
Introsort is regular quicksort but changing to a heapsort when not enough progress is made. This retains the good quicksort performance while changing the worst case runtime from O(N^2) to O(N*log(N))
Diffstat (limited to 'numpy/core/fromnumeric.py')
-rw-r--r--numpy/core/fromnumeric.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/numpy/core/fromnumeric.py b/numpy/core/fromnumeric.py
index 7e02ff2c2..d07c5c08b 100644
--- a/numpy/core/fromnumeric.py
+++ b/numpy/core/fromnumeric.py
@@ -776,6 +776,12 @@ def sort(a, axis=-1, kind='quicksort', order=None):
placements are sorted according to the non-nan part if it exists.
Non-nan values are sorted as before.
+ .. versionadded:: 1.12.0
+
+ quicksort has been changed to an introsort which will switch
+ heapsort when it does not make enough progress. This makes its
+ worst case O(n*log(n)).
+
Examples
--------
>>> a = np.array([[1,4],[3,1]])