冒泡排序¶
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
def bubbleSort(seq):
for i in range(len(seq)):
for j in range(len(seq) - 1, i, -1):
if seq[j] < seq[j - 1]:
seq[j - 1], seq[j] = seq[j], seq[j - 1]
if __name__ == '__main__':
seq = [4, 6, 2, 5, 7, 9, 8, 1]
bubbleSort(seq)
print(seq)
冒泡过程中添加是否有序监听¶
一个小优化:一旦发现数组有序就立即返回,避免不必要的遍历
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
def bubbleSort(seq):
for i in range(len(seq)):
issorted = True
for j in range(len(seq) - 1, i, -1):
if seq[j] < seq[j - 1]:
issorted = False
seq[j - 1], seq[j] = seq[j], seq[j - 1]
if issorted == True:
return
if __name__ == '__main__':
seq = [4, 6, 2, 5, 7, 9, 8, 1]
bubbleSort(seq)
print(seq)