def bubble_sort(items, comp = lambda x, y: x > y): |
"""搅拌排序(冒泡排序升级版)""" |
items = items[:] |
for i in range ( len (items) - 1 ): |
swapped = False |
for j in range ( len (items) - 1 - i): |
if comp(items[j], items[j + 1 ]): |
items[j], items[j + 1 ] = items[j + 1 ], items[j] |
swapped = True |
if swapped: |
swapped = False |
for j in range ( len (items) - 2 - i, i, - 1 ): |
if comp(items[j - 1 ], items[j]): |
items[j], items[j - 1 ] = items[j - 1 ], items[j] |
swapped = True |
if not swapped: |
break |
return items |