1.算法思想
这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,所以被称为冒泡排序。
该算法每次比较两个元素,在一次排序过程中将待排序数组中的最大值浮到顶端。
冒泡排序
2.python实现
def bubble_sort(list):
length = len(list)
for i in range(0,length-1):
print('第%d趟排序:' % (i + 1))
for j in range(0,length-1-i):
if list[j+1]<list[j]:
list[j],list[j+1]= list[j+1],list[j]
print('结果',list)
return list
input_list = [50, 123, 543, 187, 49,49 ,30, 0, 2, 11, 100]
list = bubble_sort(input_list)
print(list)
3.算法性能
冒泡排序算法性能4.优化
对冒泡排序常见的改进方法是加入标志性变量exchange,用于标志某一趟排序过程中是否有数据交换。
如果进行某一趟排序时并没有进行数据交换,则说明所有数据已经有序,可立即结束排序。
def bubble_sort(list):
length = len(list)
for i in range(0,length-1):
flag = True
for j in range(0,length-1-i):
if list[j]>list[j+1]:
list[j],list[j+1]= list[j+1],list[j]
flag = False
if flag ==True:
break
return list
input_list = [50, 123, 543, 187, 49,49 ,30, 0, 2, 11, 100]
list = bubble_sort(input_list)
print(list)
网友评论