Python代码:

"""
冒泡排序(4)在未排序的数中,通过两两比较[换位]的方式,将最小的数移至首位
N个数排序,则需要执行N-1轮,第1轮比较N-1次,后续每轮比上一轮少比较1次本例中:
第1轮将0放到正确位置;
第2轮将1放到正确位置;
......
第9轮将8放到正确位置;此方法中,两个位置数字比较时,两个位置都是变化的
第1轮第1次是位置8、位置9的数字比较,前者大,则互换位置;
第1轮第2次是位置7、位置8的数字比较,前者大,则互换位置;
......
第1轮第9次是位置0、位置1的数字比较,前者大,则互换位置;第2轮第1次是位置8、位置9的数字比较,前者大,则互换位置;
......
第2轮第8次是位置1、位置2的数字比较,前者大,则互换位置;
......"""lst = [3, 6, 9, 1, 8, 7, 2, 5, 4, 0]
print("排序前: %s\r\n" %lst)# 轮
for i in range(len(lst)-1,0,-1): #[9,8,7,6,5,4,3,2,1]print("第%s轮" % (10-i))# 次for j in range(len(lst)-1,len(lst)-i-1,-1):# 如果前大后小,则交换位置if lst[j-1] > lst[j]:lst[j-1],lst[j] = lst[j],lst[j-1]print("    第%s次 [%s]:%s,[%s]:%s比较 互换 %s" % (9-j+1,j-1,lst[j],j,lst[j-1],lst))else:print("    第%s次 [%s]:%s,[%s]:%s比较 不变 %s" % (9-j+1,j-1,lst[j-1],j,lst[j],lst))print("\r\n排序后:  %s" % lst)

输出结果:

E:\python\algorithm>python3  bubbleSort4.py
排序前: [3, 6, 9, 1, 8, 7, 2, 5, 4, 0]第1轮第1次 [8]:4,[9]:0比较 互换 [3, 6, 9, 1, 8, 7, 2, 5, 0, 4]第2次 [7]:5,[8]:0比较 互换 [3, 6, 9, 1, 8, 7, 2, 0, 5, 4]第3次 [6]:2,[7]:0比较 互换 [3, 6, 9, 1, 8, 7, 0, 2, 5, 4]第4次 [5]:7,[6]:0比较 互换 [3, 6, 9, 1, 8, 0, 7, 2, 5, 4]第5次 [4]:8,[5]:0比较 互换 [3, 6, 9, 1, 0, 8, 7, 2, 5, 4]第6次 [3]:1,[4]:0比较 互换 [3, 6, 9, 0, 1, 8, 7, 2, 5, 4]第7次 [2]:9,[3]:0比较 互换 [3, 6, 0, 9, 1, 8, 7, 2, 5, 4]第8次 [1]:6,[2]:0比较 互换 [3, 0, 6, 9, 1, 8, 7, 2, 5, 4]第9次 [0]:3,[1]:0比较 互换 [0, 3, 6, 9, 1, 8, 7, 2, 5, 4]
第2轮第1次 [8]:5,[9]:4比较 互换 [0, 3, 6, 9, 1, 8, 7, 2, 4, 5]第2次 [7]:2,[8]:4比较 不变 [0, 3, 6, 9, 1, 8, 7, 2, 4, 5]第3次 [6]:7,[7]:2比较 互换 [0, 3, 6, 9, 1, 8, 2, 7, 4, 5]第4次 [5]:8,[6]:2比较 互换 [0, 3, 6, 9, 1, 2, 8, 7, 4, 5]第5次 [4]:1,[5]:2比较 不变 [0, 3, 6, 9, 1, 2, 8, 7, 4, 5]第6次 [3]:9,[4]:1比较 互换 [0, 3, 6, 1, 9, 2, 8, 7, 4, 5]第7次 [2]:6,[3]:1比较 互换 [0, 3, 1, 6, 9, 2, 8, 7, 4, 5]第8次 [1]:3,[2]:1比较 互换 [0, 1, 3, 6, 9, 2, 8, 7, 4, 5]
第3轮第1次 [8]:4,[9]:5比较 不变 [0, 1, 3, 6, 9, 2, 8, 7, 4, 5]第2次 [7]:7,[8]:4比较 互换 [0, 1, 3, 6, 9, 2, 8, 4, 7, 5]第3次 [6]:8,[7]:4比较 互换 [0, 1, 3, 6, 9, 2, 4, 8, 7, 5]第4次 [5]:2,[6]:4比较 不变 [0, 1, 3, 6, 9, 2, 4, 8, 7, 5]第5次 [4]:9,[5]:2比较 互换 [0, 1, 3, 6, 2, 9, 4, 8, 7, 5]第6次 [3]:6,[4]:2比较 互换 [0, 1, 3, 2, 6, 9, 4, 8, 7, 5]第7次 [2]:3,[3]:2比较 互换 [0, 1, 2, 3, 6, 9, 4, 8, 7, 5]
第4轮第1次 [8]:7,[9]:5比较 互换 [0, 1, 2, 3, 6, 9, 4, 8, 5, 7]第2次 [7]:8,[8]:5比较 互换 [0, 1, 2, 3, 6, 9, 4, 5, 8, 7]第3次 [6]:4,[7]:5比较 不变 [0, 1, 2, 3, 6, 9, 4, 5, 8, 7]第4次 [5]:9,[6]:4比较 互换 [0, 1, 2, 3, 6, 4, 9, 5, 8, 7]第5次 [4]:6,[5]:4比较 互换 [0, 1, 2, 3, 4, 6, 9, 5, 8, 7]第6次 [3]:3,[4]:4比较 不变 [0, 1, 2, 3, 4, 6, 9, 5, 8, 7]
第5轮第1次 [8]:8,[9]:7比较 互换 [0, 1, 2, 3, 4, 6, 9, 5, 7, 8]第2次 [7]:5,[8]:7比较 不变 [0, 1, 2, 3, 4, 6, 9, 5, 7, 8]第3次 [6]:9,[7]:5比较 互换 [0, 1, 2, 3, 4, 6, 5, 9, 7, 8]第4次 [5]:6,[6]:5比较 互换 [0, 1, 2, 3, 4, 5, 6, 9, 7, 8]第5次 [4]:4,[5]:5比较 不变 [0, 1, 2, 3, 4, 5, 6, 9, 7, 8]
第6轮第1次 [8]:7,[9]:8比较 不变 [0, 1, 2, 3, 4, 5, 6, 9, 7, 8]第2次 [7]:9,[8]:7比较 互换 [0, 1, 2, 3, 4, 5, 6, 7, 9, 8]第3次 [6]:6,[7]:7比较 不变 [0, 1, 2, 3, 4, 5, 6, 7, 9, 8]第4次 [5]:5,[6]:6比较 不变 [0, 1, 2, 3, 4, 5, 6, 7, 9, 8]
第7轮第1次 [8]:9,[9]:8比较 互换 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]第2次 [7]:7,[8]:8比较 不变 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]第3次 [6]:6,[7]:7比较 不变 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
第8轮第1次 [8]:8,[9]:9比较 不变 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]第2次 [7]:7,[8]:8比较 不变 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
第9轮第1次 [8]:8,[9]:9比较 不变 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]排序后:  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

=====结束=====

转载于:https://www.cnblogs.com/sam11/p/8342817.html

Python冒泡排序(4)相关推荐

  1. python冒泡排序

    python 冒泡排序: data=[7,9,2,8,3,1,4,6,5]for i in range(len(data)): #数据长度len()就是for-in循环的次数; for j in ra ...

  2. python字符串的冒泡排序_如何实现python冒泡排序算法?

    冒泡排序是一种简单的排序技术,它通过比较相邻的元素遍历整个列表,对它们进行排序并交换元素,直到对整个列表进行排序. 算法:给定一个包含n个元素的列表L,这些元素的值或记录为L0, L1,-,Ln-1, ...

  3. python冒泡排序函数_python冒泡排序-Python,冒泡排序

    arr = [ 7 , 4 , 3 , 67 , 34 , 1 , 8 ] . def bubble_sort : 最近在学习Python,下面是我的一些笔记 冒泡排序 实现思路: 使用双重for循环 ...

  4. python冒泡排序原理_如何实现python冒泡排序算法?

    冒泡排序是一种简单的排序技术,它通过比较相邻的元素遍历整个列表,对它们进行排序并交换元素,直到对整个列表进行排序. 算法:给定一个包含n个元素的列表L,这些元素的值或记录为L0, L1,-,Ln-1, ...

  5. python 冒泡排序及优化_Python冒泡排序及优化

    一.冒泡排序简介 冒泡排序(Bubble Sort)是一种常见的排序算法,相对来说比较简单. 冒泡排序重复地走访需要排序的元素列表,依次比较两个相邻的元素,如果顺序(如从大到小或从小到大)错误就交换它 ...

  6. python冒泡排序算法非递归_python 冒泡排序,递归

    今天LeetCode的时候暴力求解233 问题: 给定一个整数 n,计算所有小于等于 n 的非负数中数字1出现的个数. 例如: 给定 n = 13, 返回 6,因为数字1出现在下数中出现:1,10,1 ...

  7. python冒泡排序与常用数学计算

    一 .冒泡排序: 冒泡排序: 属于交换排序; 两两比较大小,交换位置,如同水泡大的往上(右)跑; n个数从左至右编号从0到n-1,索引0和1比较,如果索引0大,则交换两者位置; 如果索引1大则不用交换 ...

  8. python冒泡排序_5种python方法实现冒泡排序可视化:Bubble Sort Visualizer

    1 说明: ===== 1.1 冒泡排序: 1.1.1 原理:比较两个相邻的元素,将值大的元素交换至右端. 1.1.2 来源:由来是因为越大的元素会经由交换慢慢"浮"到数列的顶端, ...

  9. python 冒泡排序算法(超级详细)

    一.什么是冒泡排序 冒泡排序是一种简单的排序算法,它也是一种稳定排序算法.其实现原理是重复扫描待排序序列,并比较每一对相邻的元素,当该对元素顺序不正确时进行交换.一直重复这个过程,直到没有任何两个相邻 ...

  10. python 冒泡排序_Python中的冒泡排序

    # 冒泡排序:排序是计算机内经常进行的一种操作,其目的是将一组"无序"的记录序列调整为"有序"的记录序列 # 冒泡排序是排序算法中最为基础和经典的一种算法 # ...

最新文章

  1. CMake手册详解 (十二)
  2. android Button源码分析
  3. 解决Ubuntu18.04下Qt中无法输入中文的问题
  4. 如何保证消息不被重复消费啊(如何保证消息消费时的幂等性)?
  5. 小爱音响调用php接口_PHP调用语音合成接口
  6. 阿里研究院入选中国企业智库系统影响力榜
  7. python自动化办公教程百度云-693629 用Python自动办公,做职场高手(完结)
  8. [V811双核] 最新昂达V811最新2.0固件ROOT方法
  9. Unity IAP接入google支付文档(2022年最新)
  10. 千方百剂2008升级到千方百计II 脚本执行错误 请检查第69行
  11. 2009-2021网络规划设计师论文题汇总
  12. 在MySQL中设计新闻网站_基于MySQL新闻搜索引擎的设计与实现
  13. sql语句中左连接查询的使用
  14. 香浓熵(Shannon)与冯诺伊曼熵(Von Neumann)
  15. #10064. 「一本通 3.1 例 1」黑暗城堡
  16. 企业即时通讯系统十大排名
  17. 如何在os x或ubuntu下安装最新的ruby
  18. Q-Learning 、Sarsa与 DQN算法
  19. 中科大研究人工智能怎么样
  20. 画论87 陈撰《书画涉笔》

热门文章

  1. linux shell跳板机,用shell开发跳板机
  2. 【CodeForces - 1051C 】Vasya and Multisets (模拟)
  3. *【CodeForces - 202C 】Clear Symmetry (思维,找规律,特判)
  4. 图解算法学习笔记(七):狄克斯特拉算法
  5. java短除法获取二进制_Java十四天零基础入门-Java的数据类型介绍
  6. mysql varchar java_关于MySQL varchar类型最大值,原来一直都理解错了
  7. linux串口写入命令失败,linux – 从串口读取失败
  8. C# 实现将网络资源保存到本地
  9. asp.net mvc 地址栏传输信息报错:window.location.pathname
  10. cppcheck的安装和使用