首页 存档 技术 查看内容

Python算法实战:冒泡

2018-3-30 13:00 |来自: 互联网 278 0

摘要: 作者:安生 来源:https://blog.ansheng.me/article/python-algorithm-combat-series-bubble/ 冒泡算法即冒泡排序,其目的就是为一个无序的列表排成有序的,从大到小或从小到大都可以。 题外话 变量位置的互换 假 ...

作者:安生

来源:https://blog.ansheng.me/article/python-algorithm-combat-series-bubble/

冒泡算法即冒泡排序,其目的就是为一个无序的列表排成有序的,从大到小或从小到大都可以。


题外话

  • 变量位置的互换

假设现在有两个变量a1与a2:

  1. a1=123

  2. a2=456

如何调换这两个变量的位置,即结果就是让a1=456a2=123

解:添加一个中间变量temp,其过程如下:

  1. a1=123

  2. a2=456

  3. print("a1 =",a1," ","a2 =",a2)

  4. temp=a1

  5. a1=a2

  6. a2=temp

  7. print("a1 =",a1," ","a2 =",a2)

输出结果为:

  1. C:\Python35\python.exe F:/Python_code/Note/maopao.py

  2. a1 = 123 a2 = 456

  3. a1 = 456 a2 = 123

  4. Process finished with exit code 0

  • 列表位置的互换

现在有一个列表li,内容为:

  1. li = [33, 2, 55, 1]

现需要把li列表中的第一个位置元素与第二个位置元素互换,其解决方法就可以引用一个中间变量temp

  1. li = [33, 2, 55, 1]

  2. print("原内容为:\n",li)

  3. temp = li[1]

  4. li[1] = li[2]

  5. li[2] = temp

  6. print("互换之后的内容为:\n",li)

输出结果:

  1. C:\Python35\python.exe F:/Python_code/Note/maopao.py

  2. 原内容为:

  3. [33, 2, 55, 1]

  4. 互换之后的内容为:

  5. [33, 55, 2, 1]

  6. Process finished with exit code 0

图解运作原理

列表内容为:

  1. li = [45,32,12,23]

文字描述

  1. 比较相邻的元素,如果第一个比第二个大,就交换他们两个的位置。

  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这步做完后,最后的元素会是最大的数。

  3. 针对所有的元素重复以上的步骤,除了最后一个,也就是每次比较之后最大的书不做任何操作。

  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

代码实现

  1. li = [45,32,12,23]

  2. for n in range(1, len(li)):

  3. for i in range(len(li) - n):

  4. if li[i]

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部