import datetime
import numpy as np
""" 冒泡排序 """
def select_sort(origin_items, comp=lambda x, y: x < y):
items = origin_items[:]
for i in range(len(items) - 1):
min_index = i
for j in range(i + 1, len(items)):
if comp(items[j], items[min_index]):
min_index = j
items[i], items[min_index] = items[min_index], items[i]
return items
""" 高级冒泡排序 """
def high_bubble_sort(origin_items, comp=lambda x, y: x < y):
items = origin_items[:]
for i in range(len(items) - 1):
swapped = False
for j in range(i, 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
if __name__ == "__main__":
arr1 = np.random.randint(1, 10, 10)
start1 = datetime.datetime.now()
print(select_sort(arr1))
end1 = datetime.datetime.now()
print("method1 execute time:", (end1 - start1).seconds)
start2 = datetime.datetime.now()
print(high_bubble_sort(arr1))
end2 = datetime.datetime.now()
print("hight method2 execute time:", (end2 - start2).seconds)