熬夜喝了一瓶冰可乐,突然想到的冒泡排序算法安排
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瓶可乐。问一共可以喝多少瓶可乐,剩下几个空瓶?