Python冒泡排序(4)
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)相关推荐
- 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 ...
- python字符串的冒泡排序_如何实现python冒泡排序算法?
冒泡排序是一种简单的排序技术,它通过比较相邻的元素遍历整个列表,对它们进行排序并交换元素,直到对整个列表进行排序. 算法:给定一个包含n个元素的列表L,这些元素的值或记录为L0, L1,-,Ln-1, ...
- python冒泡排序函数_python冒泡排序-Python,冒泡排序
arr = [ 7 , 4 , 3 , 67 , 34 , 1 , 8 ] . def bubble_sort : 最近在学习Python,下面是我的一些笔记 冒泡排序 实现思路: 使用双重for循环 ...
- python冒泡排序原理_如何实现python冒泡排序算法?
冒泡排序是一种简单的排序技术,它通过比较相邻的元素遍历整个列表,对它们进行排序并交换元素,直到对整个列表进行排序. 算法:给定一个包含n个元素的列表L,这些元素的值或记录为L0, L1,-,Ln-1, ...
- python 冒泡排序及优化_Python冒泡排序及优化
一.冒泡排序简介 冒泡排序(Bubble Sort)是一种常见的排序算法,相对来说比较简单. 冒泡排序重复地走访需要排序的元素列表,依次比较两个相邻的元素,如果顺序(如从大到小或从小到大)错误就交换它 ...
- python冒泡排序算法非递归_python 冒泡排序,递归
今天LeetCode的时候暴力求解233 问题: 给定一个整数 n,计算所有小于等于 n 的非负数中数字1出现的个数. 例如: 给定 n = 13, 返回 6,因为数字1出现在下数中出现:1,10,1 ...
- python冒泡排序与常用数学计算
一 .冒泡排序: 冒泡排序: 属于交换排序; 两两比较大小,交换位置,如同水泡大的往上(右)跑; n个数从左至右编号从0到n-1,索引0和1比较,如果索引0大,则交换两者位置; 如果索引1大则不用交换 ...
- python冒泡排序_5种python方法实现冒泡排序可视化:Bubble Sort Visualizer
1 说明: ===== 1.1 冒泡排序: 1.1.1 原理:比较两个相邻的元素,将值大的元素交换至右端. 1.1.2 来源:由来是因为越大的元素会经由交换慢慢"浮"到数列的顶端, ...
- python 冒泡排序算法(超级详细)
一.什么是冒泡排序 冒泡排序是一种简单的排序算法,它也是一种稳定排序算法.其实现原理是重复扫描待排序序列,并比较每一对相邻的元素,当该对元素顺序不正确时进行交换.一直重复这个过程,直到没有任何两个相邻 ...
- python 冒泡排序_Python中的冒泡排序
# 冒泡排序:排序是计算机内经常进行的一种操作,其目的是将一组"无序"的记录序列调整为"有序"的记录序列 # 冒泡排序是排序算法中最为基础和经典的一种算法 # ...
最新文章
- CMake手册详解 (十二)
- android Button源码分析
- 解决Ubuntu18.04下Qt中无法输入中文的问题
- 如何保证消息不被重复消费啊(如何保证消息消费时的幂等性)?
- 小爱音响调用php接口_PHP调用语音合成接口
- 阿里研究院入选中国企业智库系统影响力榜
- python自动化办公教程百度云-693629 用Python自动办公,做职场高手(完结)
- [V811双核] 最新昂达V811最新2.0固件ROOT方法
- Unity IAP接入google支付文档(2022年最新)
- 千方百剂2008升级到千方百计II 脚本执行错误 请检查第69行
- 2009-2021网络规划设计师论文题汇总
- 在MySQL中设计新闻网站_基于MySQL新闻搜索引擎的设计与实现
- sql语句中左连接查询的使用
- 香浓熵(Shannon)与冯诺伊曼熵(Von Neumann)
- #10064. 「一本通 3.1 例 1」黑暗城堡
- 企业即时通讯系统十大排名
- 如何在os x或ubuntu下安装最新的ruby
- Q-Learning 、Sarsa与 DQN算法
- 中科大研究人工智能怎么样
- 画论87 陈撰《书画涉笔》
热门文章
- linux shell跳板机,用shell开发跳板机
- 【CodeForces - 1051C 】Vasya and Multisets (模拟)
- *【CodeForces - 202C 】Clear Symmetry (思维,找规律,特判)
- 图解算法学习笔记(七):狄克斯特拉算法
- java短除法获取二进制_Java十四天零基础入门-Java的数据类型介绍
- mysql varchar java_关于MySQL varchar类型最大值,原来一直都理解错了
- linux串口写入命令失败,linux – 从串口读取失败
- C# 实现将网络资源保存到本地
- asp.net mvc 地址栏传输信息报错:window.location.pathname
- cppcheck的安装和使用