1.算法描述:
(1)共循环 n-1 次
(2)每次循环中,如果 前面的数大于后面的数,就交换
(3)设置一个标签,如果上次没有交换,就说明这个是已经好了的。
2.代码
#!/usr/bin/python
# -*- coding: utf-8 -*- def bubble(l):
flag = True
for i in range(len(l)-1, 0, -1):
if flag:
flag = False
for j in range(i):
if l[j] > l[j + 1]:
l[j], l[j+1] = l[j+1], l[j]
flag = True
else:
break
print l li = [21,44,2,45,33,4,3,67]
bubble(li)
结果:[2, 3, 4, 21, 33, 44, 45, 67]
3.时间复杂度:n(n-1)/2