Tôi đã phát hiện ra rằng max
là chậm hơn so với sort
hàm trong Python 2 và 3.Tại sao chậm hơn tối đa so với sắp xếp?
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
Tại sao làmax
(O(n)
) chậm hơn chức năng sort
(O(nlogn)
)?
Bạn đã chạy phân tích Python 2 một lần và mã Python 3 hoàn toàn giống nhau. – erip
'a.sort()' hoạt động tại chỗ. Hãy thử 'được sắp xếp (a)' –
@erip Tôi đã sửa nó – WeizhongTu