美文网首页
Python 冒泡排序

Python 冒泡排序

作者: 倔强的潇洒小姐 | 来源:发表于2017-09-01 15:30 被阅读80次
百度百科对冒泡排序的算法原理描述:

1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3、针对所有的元素重复以上的步骤,除了最后一个。
4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

源代码:
a = [500, 432, -23, 73, 98, 23, -765, 11, 0, 69, 4]
b = len(a) - 1
while b:
    for i in range(b):
        j = i + 1
        if a[i] > a[j]:
            a[i], a[j] = a[j], a[i]
    b -= 1       # b = b -1
    print(a)     # 需注意print的缩进位置,输出每一次遍历后的结果
# print(a)     # 输出最终结果
输出每次遍历结果.png
其中 a[k], a[l] = a[l], a[k] 可以改成 c = a[k], a[k] = a[l], a[l ] =c,c相当于临时变量
另外代码还可以进行优化,将条件 b 放到 for 循环中
for i in range(b, 0, -1)---------含义:b-0是范围,每次循环结束后减1
调试过程.png

总结

其实算法不难,先理清思路问题就变得简单了,然后就可以尝试着输出代码了,debug 是个很好的帮手,一步步调试看数据是如何变化的,可以更好的理解程序是怎么实现这段代码的

请思考:如何一行代码搞定(顺序 or 倒序显示)



公布答案(可以复制代码到 IDE 中执行查看结果)

print(sorted(a))   #  顺序
print(sorted(a, reverse=True))   # 倒序

注解:
sorted函数 不会改变列表本身(可理解为先复制列表,再顺序整理),参数 reverse 用于逆序排序

相关文章

  • Java,Python冒泡排序

    Java冒泡排序 Python冒泡排序 Java九九乘法表 Python九九乘法表

  • 冒泡排序法

    python排序算法之冒泡排序 首先说一下冒泡排序原理: 冒泡排序(Bubble Sort),是一种计算机科学领域...

  • Python排序算法有哪几种?

    python排序算法有哪些?python中常见的排序算法有:插入排序、选择排序、冒泡排序、快速排序、归并排序、希尔...

  • 冒泡排序

    Python 冒泡排序 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,...

  • python链表冒泡排序、二叉树顺序递归遍历、顺序表的快排

    一、python实现链表冒泡排序 - 冒泡排序的概念:冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关...

  • 排序算法详细代码实现

    算法分类 算法时间复杂度 选择排序 插入排序 C++实现 Python实现 冒泡排序 Python实现 归并排序 ...

  • go排序之路(编程基础)

    对python排序有兴趣的可以去我之前的博客查找TopGun Python排序 冒泡排序 pupu.go(思路 每...

  • python实现冒泡排序(BubbleSort)

    python实现【冒泡排序】 算法原理介绍 冒泡排序是一种简单的排序算法。它的基本原理思想是重复地走访过要排序的数...

  • 七大排序算法的 Python

    本文用Python实现了插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序。 1、插...

  • 八大排序算法的 Python 实现(转)

    本文用Python实现了插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序。 1、插...

网友评论

      本文标题:Python 冒泡排序

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