-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBubbleSort.py
More file actions
28 lines (25 loc) · 1.02 KB
/
BubbleSort.py
File metadata and controls
28 lines (25 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from timeit import Timer
def bubble_sort(list):
'''第一层循环每一次都将最大的数排到最后面
冒泡是最没有效率的排序'''
for pass_num in range(len(list)-1, 0, -1):
for i in range(pass_num):
if list[i] > list[i+1]:
list[i], list[i+1] = list[i+1], list[i]
def short_bubble_sort(list):
'''如果没有交换发生,结束循环'''
exchange = True
for pass_num in range(len(list)-1, 0, -1):
if exchange == False:
break
exchange = False
for i in range(pass_num):
if list[i] > list[i+1]:
exchange = True
list[i], list[i+1] = list[i+1], list[i]
if __name__ == '__main__':
a_list = [1, 2, 3, 4, 5, 6, 8, 32, 11, 24, 21, 23, 54, 26, 93, 17, 77, 31, 44, 55, 20]
t1 = Timer('short_bubble_sort(a_list)', 'from __main__ import short_bubble_sort, a_list')
t2 = Timer('bubble_sort(a_list)', 'from __main__ import bubble_sort, a_list')
print(t1.timeit())
print(t2.timeit())