Python@TW: 會眾| IRC| Planet| 郵件列表| 聯絡我們
修訂版 2 和 3 的差異如下:
2007-03-11 07:09:31 修訂第 2 版
大小: 603
編輯者: cschin
說明:
2009-04-01 04:14:21 修訂第 3 版
大小: 603
編輯者: localhost
說明: converted to 1.6 markup
完全相同!

For educational purpose, the built-in sort() should be faster.

>>> def qs(l):
...     if len(l) <= 1: return l
...     return qs( [x for x in l[1:] if x < l[0]] ) + l[:1] + qs( [x for x in l[1:] if x >= l[0] ] )
>>> l = [random.randint(-100,100) for x in range(10)]
>>> qs(l)
[-73, -59, -27, -17, -12, 16, 22, 40, 53, 83]
>>> l.sort()
>>> l
[-73, -59, -27, -17, -12, 16, 22, 40, 53, 83]

One line quick sort (Python 2.5 only)

qs = lambda l : l if len(l) <= 0 else qs([x for x in l[1:] if x < l[0]]) + l[:1] + qs([x for x in l[1:] if x >= l[0]]


CategoryCookbook

QuickSort (上次是 localhost 在 2009-04-01 04:14:21 編輯的)