熬夜喝了一瓶冰可乐,突然想到的冒泡排序算法安排

Posted 杨旭华啊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了熬夜喝了一瓶冰可乐,突然想到的冒泡排序算法安排相关的知识,希望对你有一定的参考价值。

冒泡排序:

  • 通俗解释就是:定义从小到大排列,比较相邻的数字,如果第一个比第二个大,就交换他们两个,如果如果第一个比第二个小,就不动第一个,继续从第二个开始比较。

这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

排序方式

遍历列表并比较相邻的元素对,如果元素顺序错误,则交换它们。重复遍历列表未排序部分的元素,直到完成列表排序

时间复杂度

因为冒泡排序重复地通过列表的未排序部分,所以它具有最坏的情况复杂度 O ( n 2 ) O(n^2) O(n2)

如图展示的意思,比较相邻的数字,它会进行好多次比较,直至排序完成
在这里插入图片描述
代码编写:

# 定义数组
li = [3, 8, 2, 5, 1, 4, 6, 7]


def bubble_sort(li):
    # 第2步,如果不知道循环几次,则举几个示例来判断
    # 控制循环的次数,因为下面循环是比较数字,那不可能排序一次就拍好了,所以要循环重复下面的步骤
    for j in range(0, len(li) - 1):
        # 第1步,这个代码为一次循环比对,这段代码一定一直循环,一直比对多次至排序完成
        # 我们要定义指针下标,用下标代表数字进行比较,从0开始,再上一次的循环基础上进行排序,
        for i in range(0, len(li) - j - 1):
        # 用前一个跟后面的对比,如果前一个大于后面的一个,就进行换位置
            if li[i] > li[i + 1]:
                # 此为python特有的数字换位写法
                li[i], li[i + 1] = li[i + 1], li[i]
    return li


print(bubble_sort(li))

以上是关于熬夜喝了一瓶冰可乐,突然想到的冒泡排序算法安排的主要内容,如果未能解决你的问题,请参考以下文章

C# 练习3个可乐瓶可以换一瓶可乐,现在有364瓶可乐。问一共可以喝多少瓶可乐,剩下几个空瓶?

C# 练习3个可乐瓶可以换一瓶可乐,现在有364瓶可乐。问一共可以喝多少瓶可乐,剩下几个空瓶?

C# 练习3个可乐瓶可以换一瓶可乐,现在有364瓶可乐。问一共可以喝多少瓶可乐,剩下几个空瓶?

若干排序算法的Python实现方法及原理

我也“阳”了

2020牛客寒假算法基础集训营5.A——模板简单计算