一、冒泡排序
1. 原理:比较两个相邻的元素,将值大的元素交换到右边
2. 思路:依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面。
(1)第一次比较:首先比较第一和第二个数,将小数放在前面,将大数放在后面。
(2)比较第2和第3个数,将小数 放在前面,大数放在后面。
(3)如此继续,知道比较到最后的两个数,将小数放在前面,大数放在后面,重复步骤,直至全部排序完成
3. 举例:要排序的数组
li = [1,3,5,9,70, 135, 12, 17, 24, 34]
1 li = [1,3,5,9,70, 135, 12, 17, 24, 34] 2 3 for i in range(len(li)): # i 是固定位置的元素 4 print("当前用来对比的位置是:%s,数据是:%s" % (i, li[i])) 5 for j in range(len(li)): 6 # j是用来被对比的每个元素 用的是list中每个value去循环,做数据交换 没法去做 7 print("现在用%s和%s进行对比" % (li[i], li[j])) 8 if li[i] < li[j]: 9 li[i], li[j] = li[j], li[i] 10 print(li) 11 print("======当前位置:%s,数据:%s 已结束==========" % (i, li[i])) 12 13 print(li)
运行代码结果如下:
当前用来对比的位置是:0,数据是:1
现在用1和1进行对比
[1, 3, 5, 9, 70, 135, 12, 17, 24, 34]
现在用1和3进行对比
[3, 1, 5, 9, 70, 135, 12, 17, 24, 34]
现在用3和5进行对比
[5, 1, 3, 9, 70, 135, 12, 17, 24, 34]
现在用5和9进行对比
[9, 1, 3, 5, 70, 135, 12, 17, 24, 34]
现在用9和70进行对比
[70, 1, 3, 5, 9, 135, 12, 17, 24, 34]
现在用70和135进行对比
[135, 1, 3, 5, 9, 70, 12, 17, 24, 34]
现在用135和12进行对比
[135, 1, 3, 5, 9, 70, 12, 17, 24, 34]
现在用135和17进行对比
[135, 1, 3, 5, 9, 70, 12, 17, 24, 34]
现在用135和24进行对比
[135, 1, 3, 5, 9, 70, 12, 17, 24, 34]
现在用135和34进行对比
[135, 1, 3, 5, 9, 70, 12, 17, 24, 34]
======当前位置:0,数据:135 已结束==========
当前用来对比的位置是:1,数据是:1
现在用1和135进行对比
[1, 135, 3, 5, 9, 70, 12, 17, 24, 34]
现在用135和135进行对比
[1, 135, 3, 5, 9, 70, 12, 17, 24, 34]
现在用135和3进行对比
[1, 135, 3, 5, 9, 70, 12, 17, 24, 34]
现在用135和5进行对比
[1, 135, 3, 5, 9, 70, 12, 17, 24, 34]
现在用135和9进行对比
[1, 135, 3, 5, 9, 70, 12, 17, 24, 34]
现在用135和70进行对比
[1, 135, 3, 5, 9, 70, 12, 17, 24, 34]
现在用135和12进行对比
[1, 135, 3, 5, 9, 70, 12, 17, 24, 34]
现在用135和17进行对比
[1, 135, 3, 5, 9, 70, 12, 17, 24, 34]
现在用135和24进行对比
[1, 135, 3, 5, 9, 70, 12, 17, 24, 34]
现在用135和34进行对比
[1, 135, 3, 5, 9, 70, 12, 17, 24, 34]
======当前位置:1,数据:135 已结束==========
当前用来对比的位置是:2,数据是:3
现在用3和1进行对比
[1, 135, 3, 5, 9, 70, 12, 17, 24, 34]
现在用3和135进行对比
[1, 3, 135, 5, 9, 70, 12, 17, 24, 34]
现在用135和135进行对比
[1, 3, 135, 5, 9, 70, 12, 17, 24, 34]
现在用135和5进行对比
[1, 3, 135, 5, 9, 70, 12, 17, 24, 34]
现在用135和9进行对比
[1, 3, 135, 5, 9, 70, 12, 17, 24, 34]
现在用135和70进行对比
[1, 3, 135, 5, 9, 70, 12, 17, 24, 34]
现在用135和12进行对比
[1, 3, 135, 5, 9, 70, 12, 17, 24, 34]
现在用135和17进行对比
[1, 3, 135, 5, 9, 70, 12, 17, 24, 34]
现在用135和24进行对比
[1, 3, 135, 5, 9, 70, 12, 17, 24, 34]
现在用135和34进行对比
[1, 3, 135, 5, 9, 70, 12, 17, 24, 34]
======当前位置:2,数据:135 已结束==========
当前用来对比的位置是:3,数据是:5
现在用5和1进行对比
[1, 3, 135, 5, 9, 70, 12, 17, 24, 34]
现在用5和3进行对比
[1, 3, 135, 5, 9, 70, 12, 17, 24, 34]
现在用5和135进行对比
[1, 3, 5, 135, 9, 70, 12, 17, 24, 34]
现在用135和135进行对比
[1, 3, 5, 135, 9, 70, 12, 17, 24, 34]
现在用135和9进行对比
[1, 3, 5, 135, 9, 70, 12, 17, 24, 34]
现在用135和70进行对比
[1, 3, 5, 135, 9, 70, 12, 17, 24, 34]
现在用135和12进行对比
[1, 3, 5, 135, 9, 70, 12, 17, 24, 34]
现在用135和17进行对比
[1, 3, 5, 135, 9, 70, 12, 17, 24, 34]
现在用135和24进行对比
[1, 3, 5, 135, 9, 70, 12, 17, 24, 34]
现在用135和34进行对比
[1, 3, 5, 135, 9, 70, 12, 17, 24, 34]
======当前位置:3,数据:135 已结束==========
当前用来对比的位置是:4,数据是:9
现在用9和1进行对比
[1, 3, 5, 135, 9, 70, 12, 17, 24, 34]
现在用9和3进行对比
[1, 3, 5, 135, 9, 70, 12, 17, 24, 34]
现在用9和5进行对比
[1, 3, 5, 135, 9, 70, 12, 17, 24, 34]
现在用9和135进行对比
[1, 3, 5, 9, 135, 70, 12, 17, 24, 34]
现在用135和135进行对比
[1, 3, 5, 9, 135, 70, 12, 17, 24, 34]
现在用135和70进行对比
[1, 3, 5, 9, 135, 70, 12, 17, 24, 34]
现在用135和12进行对比
[1, 3, 5, 9, 135, 70, 12, 17, 24, 34]
现在用135和17进行对比
[1, 3, 5, 9, 135, 70, 12, 17, 24, 34]
现在用135和24进行对比
[1, 3, 5, 9, 135, 70, 12, 17, 24, 34]
现在用135和34进行对比
[1, 3, 5, 9, 135, 70, 12, 17, 24, 34]
======当前位置:4,数据:135 已结束==========
当前用来对比的位置是:5,数据是:70
现在用70和1进行对比
[1, 3, 5, 9, 135, 70, 12, 17, 24, 34]
现在用70和3进行对比
[1, 3, 5, 9, 135, 70, 12, 17, 24, 34]
现在用70和5进行对比
[1, 3, 5, 9, 135, 70, 12, 17, 24, 34]
现在用70和9进行对比
[1, 3, 5, 9, 135, 70, 12, 17, 24, 34]
现在用70和135进行对比
[1, 3, 5, 9, 70, 135, 12, 17, 24, 34]
现在用135和135进行对比
[1, 3, 5, 9, 70, 135, 12, 17, 24, 34]
现在用135和12进行对比
[1, 3, 5, 9, 70, 135, 12, 17, 24, 34]
现在用135和17进行对比
[1, 3, 5, 9, 70, 135, 12, 17, 24, 34]
现在用135和24进行对比
[1, 3, 5, 9, 70, 135, 12, 17, 24, 34]
现在用135和34进行对比
[1, 3, 5, 9, 70, 135, 12, 17, 24, 34]
======当前位置:5,数据:135 已结束==========
当前用来对比的位置是:6,数据是:12
现在用12和1进行对比
[1, 3, 5, 9, 70, 135, 12, 17, 24, 34]
现在用12和3进行对比
[1, 3, 5, 9, 70, 135, 12, 17, 24, 34]
现在用12和5进行对比
[1, 3, 5, 9, 70, 135, 12, 17, 24, 34]
现在用12和9进行对比
[1, 3, 5, 9, 70, 135, 12, 17, 24, 34]
现在用12和70进行对比
[1, 3, 5, 9, 12, 135, 70, 17, 24, 34]
现在用70和135进行对比
[1, 3, 5, 9, 12, 70, 135, 17, 24, 34]
现在用135和135进行对比
[1, 3, 5, 9, 12, 70, 135, 17, 24, 34]
现在用135和17进行对比
[1, 3, 5, 9, 12, 70, 135, 17, 24, 34]
现在用135和24进行对比
[1, 3, 5, 9, 12, 70, 135, 17, 24, 34]
现在用135和34进行对比
[1, 3, 5, 9, 12, 70, 135, 17, 24, 34]
======当前位置:6,数据:135 已结束==========
当前用来对比的位置是:7,数据是:17
现在用17和1进行对比
[1, 3, 5, 9, 12, 70, 135, 17, 24, 34]
现在用17和3进行对比
[1, 3, 5, 9, 12, 70, 135, 17, 24, 34]
现在用17和5进行对比
[1, 3, 5, 9, 12, 70, 135, 17, 24, 34]
现在用17和9进行对比
[1, 3, 5, 9, 12, 70, 135, 17, 24, 34]
现在用17和12进行对比
[1, 3, 5, 9, 12, 70, 135, 17, 24, 34]
现在用17和70进行对比
[1, 3, 5, 9, 12, 17, 135, 70, 24, 34]
现在用70和135进行对比
[1, 3, 5, 9, 12, 17, 70, 135, 24, 34]
现在用135和135进行对比
[1, 3, 5, 9, 12, 17, 70, 135, 24, 34]
现在用135和24进行对比
[1, 3, 5, 9, 12, 17, 70, 135, 24, 34]
现在用135和34进行对比
[1, 3, 5, 9, 12, 17, 70, 135, 24, 34]
======当前位置:7,数据:135 已结束==========
当前用来对比的位置是:8,数据是:24
现在用24和1进行对比
[1, 3, 5, 9, 12, 17, 70, 135, 24, 34]
现在用24和3进行对比
[1, 3, 5, 9, 12, 17, 70, 135, 24, 34]
现在用24和5进行对比
[1, 3, 5, 9, 12, 17, 70, 135, 24, 34]
现在用24和9进行对比
[1, 3, 5, 9, 12, 17, 70, 135, 24, 34]
现在用24和12进行对比
[1, 3, 5, 9, 12, 17, 70, 135, 24, 34]
现在用24和17进行对比
[1, 3, 5, 9, 12, 17, 70, 135, 24, 34]
现在用24和70进行对比
[1, 3, 5, 9, 12, 17, 24, 135, 70, 34]
现在用70和135进行对比
[1, 3, 5, 9, 12, 17, 24, 70, 135, 34]
现在用135和135进行对比
[1, 3, 5, 9, 12, 17, 24, 70, 135, 34]
现在用135和34进行对比
[1, 3, 5, 9, 12, 17, 24, 70, 135, 34]
======当前位置:8,数据:135 已结束==========
当前用来对比的位置是:9,数据是:34
现在用34和1进行对比
[1, 3, 5, 9, 12, 17, 24, 70, 135, 34]
现在用34和3进行对比
[1, 3, 5, 9, 12, 17, 24, 70, 135, 34]
现在用34和5进行对比
[1, 3, 5, 9, 12, 17, 24, 70, 135, 34]
现在用34和9进行对比
[1, 3, 5, 9, 12, 17, 24, 70, 135, 34]
现在用34和12进行对比
[1, 3, 5, 9, 12, 17, 24, 70, 135, 34]
现在用34和17进行对比
[1, 3, 5, 9, 12, 17, 24, 70, 135, 34]
现在用34和24进行对比
[1, 3, 5, 9, 12, 17, 24, 70, 135, 34]
现在用34和70进行对比
[1, 3, 5, 9, 12, 17, 24, 34, 135, 70]
现在用70和135进行对比
[1, 3, 5, 9, 12, 17, 24, 34, 70, 135]
现在用135和135进行对比
[1, 3, 5, 9, 12, 17, 24, 34, 70, 135]
======当前位置:9,数据:135 已结束==========
[1, 3, 5, 9, 12, 17, 24, 34, 70, 135]