美文网首页
冒泡排序

冒泡排序

作者: someonelik_ef7c | 来源:发表于2019-06-17 21:07 被阅读0次

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)

相关文章

网友评论

      本文标题:冒泡排序

      本文链接:https://www.haomeiwen.com/subject/tmazfctx.html