Python冒泡排序深度剖析
题目:
给你一个数组,通过冒泡排序倒序输出,并打印每一步排序步骤。
原理:
要实现冒泡排序算法,我们首先就要理解冒泡排序算法的本质和原理。顾名思义,冒泡排序就是像水中的泡泡一样,将数列中所有相邻的两个元素进行比较。每一次对数列进行遍历都可以找到现有数字中最大的数,当本次遍历完成后,该数将被冒泡到最后一位,最终在多次遍历后完成排序。
至于遍历次数,则取决于我们传入的数组的长度。
思路:
首先,我们比较第一对相邻的两个数字,也就是第一个数字和第二个数字,如果前一个数字大于后一个数字,就将两个数字交换;然后我们比较第二对数字,即第二个数字和第三个数字。
同理当第二个数字比第三个数字大时就交换两个数字,否则不进行操作。重复进行此操作,直到比较到第n个数字和第n-1个数字,当本步骤交换完毕后,第n个数字(即最后一个数字)就是本数列中的最大数。
接下来,我们通过代码来实现。
代码:
# Author : Tracy微信:810295842
# coding : utf-8
def bub_sort(alist):n = len(alist)print("冒泡排序前 :{}".format(alist))for i in range(n - 1):for j in range(n - 1 - i):if alist[j] < alist[j + 1]:alist[j], alist[j + 1] = alist[j + 1], alist[j]print("第{}次排序后:{}".format(i+1, alist))if __name__ == '__main__':a = input("请输入一组数组,用空格分隔:").split(" ")for i in range(len(a)):a[i] = int(a[i])bub_sort(a)print("加微信进入招聘+技术交流群:746506216")
执行后结果:
现在我邀请你进入我们的软件测试学习交流群:【746506216
】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!
Python冒泡排序深度剖析相关推荐
- 深度剖析冒泡排序机制
深度剖析冒泡排序机制 首先冒泡的机制 从五个数来分析 假设一个数组 6,5,8,4,20 第一次排序: 先比较6,5,因为6>5,所以位置交换, 再比较8和6,位置不变, 然后比较4和8,交换这 ...
- python源代码-Python 源码深度剖析
课程亮点 了解Python运行机制和设计思想: 熟悉背后的数据结构和算法原理: 结合工程实际,掌握高效程序设计之道: 高级面试知识点,求职更自信: 大量图表辅助学习,难点知识轻松拿下. 课程简介 能用 ...
- git原理详解与实操指南_全网最精:学git一套就够了,从入门到原理深度剖析
以上资源收集至互联网 如有侵权请联系删除 资源获取方式 扫码关注资源库公众号 回复密码'20190812' 即可获得 截图展示 课程信息 课程难度:中级 学习人数:148352 课程状态:已完结 时长 ...
- 《AngularJS深度剖析与最佳实践》一2.10 承诺
本节书摘来自华章出版社<AngularJS深度剖析与最佳实践>一书中的第2章,第2.10节,作者 雪狼 破狼 彭洪伟,更多章节内容可以访问云栖社区"华章计算机"公众号查 ...
- 【新书速递】从原理、架构、案例三个维度深度剖析分布式数据库
分布式数据库是分布式计算与数据库结合的产物.分布式数据库的概念早就存在,但是直到最近才真正引起产业界的高度重视.这得益于互联网和云计算技术的高速发展与广泛应用. 以"国家政务服务平台&quo ...
- Web代码安全漏洞深度剖析
在当今互联网高速发展的环境下,信息安全成了热门话题,覆盖个人信息安全.企业信息安全,乃至国家安全.攻击者常常把目标定位在寻找和获取系统源码上,传统IT开发人员从0到1建设系统时,少不了涉及常规化的开发 ...
- epoll惊群效应深度剖析
epoll惊群效应深度剖析 前情提要 我们一个基于Nginx+uWSGI+python的服务最近在高峰期经常会遇到负载高导致一些请求报错的情况,在单机qps只有差不多2000-3000左右的时候内核的 ...
- 《破坏之王—DDoS攻击与防范深度剖析》
2019独角兽企业重金招聘Python工程师标准>>> <破坏之王-DDoS攻击与防范深度剖析> 在竞争激烈的互联网领域,总有一些组织和个人利用DDoS攻击进行破坏,从而 ...
- Python源码剖析:前言
第0章:前言 0.0 我的前言 在几个月学习的中,已经学习了python基本.进阶的语法,如果有读者不清楚的话,可以参考我之前的专栏<python进阶>. 而在这个专栏<pyth ...
最新文章
- java在何时获得对象的确切类型_JAVA面试题(1)
- python3.6安装教程-Ubuntu16.04安装python3.6详细教程
- 【树莓派】树莓派CSI摄像头安装及测试方法
- W ndoWs文件夹窗口,如何在本地网络中访问-Synology-NAS-上的文件-(Wndows).pdf
- python—IFrame:在jupyter notebook中展示某个网页的情况
- 19【推荐系统3】AutoRec
- 开源:OpenJDK8 MIPS64(龙芯)
- WPS快捷键之 通用基础
- 为什么很多新型编程语言都抛弃了 C 语言风格的 for 语句?
- 京东商品详情数据接口(APP端,H5端),监控京东商品历史价格及价格走势,接口代码对接教程
- fx3u4ad一adp说明书_FX3U-4AD-ADP使用案例三菱FX3U-4AD-ADP硬件手册 - 广州正凌
- 不懂游戏类型?敢说你懂游戏音乐
- 即时编译器真心大冒险之解释器
- 2021年全球团状模塑料(BMC)收入大约657.1百万美元,预计2028年达到827.5百万美元
- Android仿今日头条手界面
- `Algorithm-Solution` `LeetCode` 6305. 二进制矩阵中翻转最多一次使路径不连通
- 嵌入式驱动移植之触摸驱动初识
- 免费矢量图标网站有哪些?
- excel中COUNTIF函数如何用
- ”一“的客观形态与主观感受之间的关联性研究
热门文章
- elasticsearch分词器词库热更新三种方案
- Dell XPS 13 9306安装 macOS 10.12.6
- CMNET vs CMWAP
- Android 消息总线汇总(一)
- calculate简写_通用简写表
- 图腾标准服务器机柜型号,图腾常用的机柜型号及全参数-20210804001933.pdf-原创力文档...
- 绝好用的迈科威(主控芯片)量产工具
- 2018年AI圈八大造假事件:罗生门此起彼伏,比娱乐圈精彩
- 重点:bat脚本的基本命令语法
- C语言做的接鸡蛋小游戏(附源码注释)【原创】