更正--冒泡排序代码

简介: 更正--冒泡排序代码

每日分享

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

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

小闫语录

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


更正

冒泡排序

之前『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]进行倒序。

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

相关文章
|
4月前
|
算法 PHP
【php经典算法】冒泡排序,冒泡排序原理,冒泡排序执行逻辑,执行过程,执行结果 代码
【php经典算法】冒泡排序,冒泡排序原理,冒泡排序执行逻辑,执行过程,执行结果 代码
33 1
|
11月前
|
机器学习/深度学习 算法 测试技术
C++动态规划算法的应用:得到 K 个半回文串的最少修改次数 原理源码测试用例
C++动态规划算法的应用:得到 K 个半回文串的最少修改次数 原理源码测试用例
|
算法 C语言
直接插入排序--C语言(附详细代码)(附图详解)
直接插入排序--C语言(附详细代码)(附图详解)
544 0
|
搜索推荐 算法 Java
排序:Java实现选择排序原理及代码注释详解
排序:Java实现选择排序原理及代码注释详解
154 0
排序:Java实现选择排序原理及代码注释详解
|
算法 搜索推荐 Java
排序:Java实现冒泡排序原理及代码注释详解
排序:Java实现冒泡排序原理及代码注释详解
131 0
排序:Java实现冒泡排序原理及代码注释详解
|
算法 C++
【牛客刷题-算法】加精 | 合并两个有序的链表 - 从思路设计、bug排除到最终实现的全过程
【牛客刷题-算法】加精 | 合并两个有序的链表 - 从思路设计、bug排除到最终实现的全过程
119 0
【牛客刷题-算法】加精 | 合并两个有序的链表 - 从思路设计、bug排除到最终实现的全过程