正文共: 895 字 5 图

预计阅读时间: 3 分钟

更正--冒泡排序代码_冒泡排序

每日分享

It is not the load that breaks you down. It's the way you carry it.

不是负重把你压垮的,而是你搬运它的方式。

小闫语录​:

两桶水很难提,使用扁担挑就容易的多。一袋大米很难抗,用小推车推着就很轻松。瞧,用对了方法,即使搬运再重的东西也有化解的方法。做事也是如此,如果压力太大,不妨换个角度思考,重新整理思路再做。


更正--冒泡排序代码_倒序_02


更正

冒泡排序

之前『​​python技术面试题(十五)--算法​​』一文中,介绍了冒泡排序的python实现。当时测试的列表没问题,但是今天换了一个特殊的列表,发现之前写的代码不能达到效果,所以特此对代码进行更正。如果哪里有问题,欢迎大家指正。

def bubble_sort(alist):
for j in range(len(alist)-1,0,-1):
for i in range(j):
if alist[i] > alist[i+1]:
alist[i],alist[i+1] = alist[i+1],alist[i]
print(alist)
alist = [23,13,1,3,5,2,1,7]
bubble_sort(alist)
print(alist)
------结果--------
[1, 1, 2, 3, 5, 7, 13, 23]

其中 ​range(len(alist)-1,0,-1)​大家可能不是很理解。我下面举例说明一下:

for i in range(3,0,-1):
print(i,end=',')

输出的结果为:

3,2,1,

结合上面的例子,我们可以看出 ​range(3,0,-1)​其实是 ​[3,0)​进行倒序,因为区间是左闭右开,所以0取不到,相当于对区间 ​(0,3]​进行倒序。

再来看冒泡排序的代码是不是就明白了。


更正--冒泡排序代码_倒序_03


更正--冒泡排序代码_冒泡排序_04