美文网首页
Python数据结构之冒泡法

Python数据结构之冒泡法

作者: RussellYoung | 来源:发表于2018-03-28 20:48 被阅读0次

一、冒泡法介绍

冒泡法属于交换排序,两两比较大小,交换位置,如同水泡咕嘟咕嘟往上冒。结果分为升序和降序排列

  • 升序:
    n个数从左至右,编号从0开始到n-1,索引0和1的值比较,如果索引0大,则交换两者位置,如果索引1大,则不交换。继续比较索引1和2的值,将大值放在右侧。直至n-2和n-1比较完,第一轮比较完成。第二轮从索引0比较到n-2,因为最右侧n-1位置上已经是最大值了。依次类推,每一轮都会减少最右侧的不参与比较,直至剩下最后2个数比较。
  • 降序则和升序相反。

二、过程实现图解:

image.png
image.png

三、使用Python代码实现
1,简单列表冒泡法的实现:

#冒泡法的实现
lst = [4,3,2,1]
length = len(lst)
for i in range(length):
    for j in range(length-1-i):
        if lst[j] > lst[j+1]:
            tmp = lst[j+1]
            lst[j+1] = lst[j]
            lst[j] = tmp
        print(i,j,lst)
#实现过程:
0 0 [3, 4, 2, 1]
0 1 [3, 2, 4, 1]
0 2 [3, 2, 1, 4]
1 0 [2, 3, 1, 4]
1 1 [2, 1, 3, 4]
2 0 [1, 2, 3, 4]

2,简单冒泡实现

#简单冒泡实现
num_list = [[1,9,8,5,6,7,4,3,2],[1,2,3,4,5,6,7,8,9]]
nums = num_list[1]
print(nums)
length = len(nums)
count_swap = 0   #交换次数
count = 0    #比较次数
for i in range(length):
    for j in range(length-i-1):
        count += 1
        if nums[j+1] > nums[j]:
            tmp = nums[j]
            nums[j] = nums[j+1]
            nums[j+1] = tmp
            count_swap += 1
print(nums,count_swap,count)
#实现结果
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 1] 36 36

相关文章

  • Python数据结构之冒泡法

    一、冒泡法介绍 冒泡法属于交换排序,两两比较大小,交换位置,如同水泡咕嘟咕嘟往上冒。结果分为升序和降序排列 升序:...

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

  • python冒泡法

  • Python入门练习1:

    1:冒泡排序法: 输入样例:SList=[5,6,3,4,8,7,1,9,0,2],用Python冒泡排序法,对S...

  • 冒泡排序法

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

  • 冒泡排序法C

    xcode冒泡排序法 下载冒泡排序。

  • 个人 Python 书单

    入门: Beginning Python 数据结构: Python 数据结构 算法: Python 算法教程

  • Python数据结构之容器@2018-11-19

    python数据结构之容器 数据结构在计算机科学中是指的是使用计算机对数据进行存储、组织的方式。python中容器...

  • Python数据结构之容器2018-11-19

    python数据结构之容器 数据结构在计算机科学中是指的是使用计算机对数据进行存储、组织的方式。python中容器...

  • 排序之冒泡和选择

    【升序排列】冒泡法 选择法

网友评论

      本文标题:Python数据结构之冒泡法

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