冒泡排序:空间复杂度为O(1),时间复杂度为O(n^2),改进算法的时间复杂度最好情况为O(n),算法稳定,具有
适应性
比较相邻元素,如为逆序,则交换位置
算法的稳定性是指:对于待排序的序列中,相同项的原来次序不能被改变
算法的适应性是指:算法因原序列有序而更高效
def bubble_sort(lst):
for i in range(len(lst)):
for j in range(1, len(lst)-i):
if lst[j-1] > lst[j]:
lst[j-1], lst[j] = lst[j], lst[j-1]
print lst
# 算法改进:加入一个辅助变量
def bubble_sort1(lst):
for i in range(len(lst)):
found = False
for j in range(1, len(lst)-i):
if lst[j-1] > lst[j]:
lst[j-1], lst[j] = lst[j], lst[j-1]
found = True
if not found:
break
print lst