Ich habe festgestellt, dass dies max
langsamer ist als die sort
Funktion in Python 2 und 3.
Python 2
$ python -m timeit -s 'import random;a=range(10000);random.shuffle(a)' 'a.sort();a[-1]'
1000 loops, best of 3: 239 usec per loop
$ python -m timeit -s 'import random;a=range(10000);random.shuffle(a)' 'max(a)'
1000 loops, best of 3: 342 usec per loop
Python 3
$ python3 -m timeit -s 'import random;a=list(range(10000));random.shuffle(a)' 'a.sort();a[-1]'
1000 loops, best of 3: 252 usec per loop
$ python3 -m timeit -s 'import random;a=list(range(10000));random.shuffle(a)' 'max(a)'
1000 loops, best of 3: 371 usec per loop
Warum ist max
( O(n)
) langsamer als die sort
Funktion ( O(nlogn)
)?
a.sort()
funktioniert an Ort und Stelle. Versuchen Siesorted(a)
sort
sortiert, und wird dann für a
immer sortiert