Cyker Way <cyker...@gmail.com> added the comment:

As for performance, I think both single-pass and multi-pass sorts have 
worst-case time complexity `m * n * log(n)`, assuming the number of items is 
`n` and each item has dimension `m`. Whichever is faster seems to be 
data-dependent. So I made a more comprehensive performance evaluation in 
`performance-1.py`. It turns out either single-pass or multi-pass can be 
80-100% faster than the other, on different inputs.

Since single-pass and multi-pass sorts are good at different inputs and there 
is currently no statistics on real application data supporting either, both 
look OK to me. But I hope you can add something in the interface of sorting 
functions (mainly `sorted` and `list.sort`) so that users don't have to write 
that multi-pass sort again and again. If the `keyspec` format is deemed too 
complicated, `keys` and `reverses` also look good to me:

    sorted(items, keys=(key0, key1, key2), reverses=(True, False, True))

And you are free to use whatever sorting algorithms in its implementation for 
this kind of task.

----------
Added file: https://bugs.python.org/file47877/performance-1.py

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue35010>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to