c++ 冒泡排序_干货|python笔记1-冒泡排序

面试的时候经常有面试官喜欢问如何进行冒泡排序?这个问题相信可以难倒一批的同学,本篇就详细讲解如何用python进行冒泡排序。

基本原理

01概念:

冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。

它重复地走访过要排序的数列,一次要比较两个元素,如果这两个元素的顺序错误就将他们两个交换过来。走访数列的工作是重复进行的,直到没有再需要交换的元素,也就说该数列已经完成排序了。

这个算法名字的由来就是因为大的元素会通过交换慢慢“浮”到数列的顶端。

02算法原理:

冒泡排序算法的运作如下:(从后向前)

  • 比较相邻的两个数,如果第一个数比第二个数大,则两数交换。
  • 对之后的相邻元素进行同样的工作,从开始到最后一对,这样进行一次排序后,数据的最后一位会是最大值 ,第一次循环进行的次数为 arr.length-1。
  • 之后对所有的元素重复以上的步骤,且以后每次循环的次数为arr.length-1-i (i为循环第几次 ,i 从零开始);
  • 重复上述步骤,直到排序完成。

交换两个数

1.如果a = 10 , b = 20如何交换两个数呢?

2.实现两个数的交换原理其实很简单,设一个临时变量c就可以了:

>先把a的值传给c,此时c的值就是10了,a的值还是10

>然后把b的值传给a,此时a的值是20,b的值还是20

>最后把c的值传给b, 此时b的值是10

eb69f0ab41fee9d51dea83d453145a67.png

3.python里面交换两个数不用那么复杂,用这个方法就行了:

>a , b = b, a

遍历比较相邻的数

1.比如一个队列是:[1, 3, 10, 9, 21, 35, 4, 6]

2.可以做一次遍历,比较相邻的数,后面的数比前面的数小就交换,这样第一次遍历可以把最大的数下沉到最后一个位置。

921c09eef9647d5c13b4f8c309f7a83c.png

循环下沉

1.与上面的遍历做比较就只做了一次下沉,把最大的数下沉到最后一个位置上,那接下来就需要把第二大的数,下沉到倒数的第二个位置,依次循环,一直到最小的数在最前面。

2.这里s是先计算li队列的长度,然后把range函数反转了,变成:[7, 6, 5, 4, 3, 2, 1, 0]

4616d82258ec8c104ddf7e2709d12fa4.png

sort()排序

说实话,python里面排序只用一个函数就可以搞定:sort()

84b40c9ec7c24d5cbfa51a3d19def52a.png

参考代码

1701ec19ff36b166ee47320953d260c7.png

以上是python笔记1—冒泡排序的全部内容,如果觉得对你有帮助,可以添加“收藏”!

如果还有疑问的地方,欢迎评论留言给我们~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266684.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

异常mongodb:Invalid BSON field name XXXXXX:YYYYY.zz

1.本周遇到这个问题。 定位到发现一个很神奇的现象上面的结构无法顺利以map的key值存入mongodb里面。 而且到线上才发现这个问题。 而且是部分用户才会出现这样的情况 大部分人的该数据是这样的 XXXXXX:YYYYYY-zz 另外一些用户的该数据是XXXXXXX:YYYYYY.zz然后就出现上面的问题…

双链表嵌套的简单学生信息管理系统

参考:实现双链表嵌套的简单学生信息管理 作者:三速何时sub20 发布时间: 2020-07-20 10:44:40 网址:https://blog.csdn.net/weixin_44234294/article/details/107458155?spm1001.2014.3001.5501 参考:双链表嵌套实现简…

XHTML重构(一)

XHTML 规则概要  将传统的 HTML 转换为 XHTML 1.0 是快捷且无痛的,只要你遵守一些简单的规则和容易的方针。不管是否使用过 HTML,都不会妨碍你使用 XHTML。    使用恰当的文档类型声明和命名空间。    使用 meta 元素声明你的内容类型。   …

scrapy如何指定生成python3的项目_如何把阿里图标库的图标生成代码并应用于自己的项目...

有时候需要用很多图标去完成一定的页面效果和工作展现,框架内置的图标可能满足不了我们的需求,有个很好的图标库想必大家都知道-----就是阿里图标库。那么我们如何才能够把阿狸图标库的图标引用到自己的项目中呢?耐着性子往下看吧&#xff01…

win10系统无线服务器出错,win10系统中Wi-Fi证书错误的解决方法

wifi想必大家都很熟悉吧,这是很多用户们喜欢的无线网络,但是有时候会碰到一些wifi错误,比如有不少win10系统用户遇到wifi证书错误的情况,这样就会导致用户无法连接到网络或访问某个网站,该怎么处理呢,现在就…

subprocess模块

subprocess模块 subprocess可以根据命令的结果,正确的或者错误的分开存放 存放正确的结果 # import subprocess # objsubprocess.Popen(tasklist,shellTrue, # stdoutsubprocess.PIPE, # stderrsubprocess.PIPE, # …

mysql语录错误1300_mysql 语句常见错误 汇总(持续更新中)

1. 表名和属性名 按照 规范 应该加反引号(就是键盘上esc键下面,"1"键左边的那一个), 否则如果字段中出现某些关键字, 会引起歧义并报错。例如:insert into onlineshop_transferorder( from, to, relateId, total, productId, skuname, createTime, status…

通过EIGRP的 variance 参数实现非等价负载均衡

实验拓扑如上图所示我们使用EIGRP协议做通全网实现R1 的1.1.1.1 可以和 R4的4.4.4.4 进行通信 此时我们查看R1的路由表,查看去往4.4.4.4 的路由条目 通过拓扑图我们看到 R1去往4.4.4.4 是有两条路径的也就是 R1-R2-R4 和 R1-R3-R4 ,但是在路由表中&…

echarts 获取点击的y轴数值_用 Python 自动获取NBA现役球员的职业生涯数据曲线

前言作为一个看了多年篮球的 NBA球迷,一直在想用 python 和篮球一起来写点什么加上最近在学习 pyecharts ,所以就有了下面这篇文章:根据输入的球队和球员名字,自动生成该球员职业生涯数据曲线图!✨ 效果火箭哈登勇士格…

重装系统后dns服务器未响应,dns服务器未响应,小编教你dns服务器未响应怎么解决...

连网时,出现连不上网络,用Windows网络诊断,诊断出的结果是“DNS服务器未响应”,遇到这样情况该怎样解决?在使用window系统的电脑上网过程中,常常会遇到DNS服务器未响应的问题,怎么办&#xff1f…

VMware虚拟机启动错误(正在被占用、内部错误)等问题

参考:VMware虚拟机启动错误(正在被占用、内部错误)等问题 作者:扫地僧- 发布时间:2019-09-20 15:02:55 网址:https://blog.csdn.net/weixin_42119153/article/details/101060183?spm1001.2014.3001.5501 目…

Ubuntu 16.04 安装网易云音乐

从官网下载安装包后,需要重新配置一下依赖。(sudo apt-get -f install) 注意:软件源换成国内阿里的转载于:https://www.cnblogs.com/Sayno/p/9300442.html

xampp mysql 备份_Linux Xampp计划任务自动备份Mysql数据库和所有网站

[inlosc_lg_title]1、备份[/inlosc_lg_title]使用XAMPP的PHP网站集成环境,不仅轻松的解决网站所需环境,他的备份功能也非常强大。下面让我们输入几句命令来完成数据库和网站的自动备份:/opt/lampp/lampp backup **** #命令后面跟着的是MySQL …

mt4 指标 涨跌幅 颜色k线_通达信指标公式源码阴线买股+黄金K线指标+源码

源码:TT2:DMA((((HIGH LOW) (CLOSE * 2)) / 4.15),0.9);TT1:REF(EMA(TT2,3),1);RSV:(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;K:SMA(RSV,3,1);D:SMA(K,3,1);J:3*K-2*D;LC:REF(CLOSE,1);RSI:((SMA(MAX((CLOSE - LC),0),3,1) / SMA(ABS((CLOSE - LC)),3,1)…

Windows Server 2008 R2 遗忘管理员密码后的解决方法-by iLync

思路是这样的:修改登录界面其他功能的链接,使之成为CMD的链接,在CMD命令里面定位到C:\\Windows\System32下,用net user 去修改账号和密码具体操作如下:一、使用Windows Server 2008 R2的安装光盘引导计算机启动。完成安…

面经——Linux相关

摘自:看完这些面试必问的Linux小知识,我保证你面试后会来给我的文章一键三连 作者:万里羊 发布时间:2021-04-09 21:55:23 网址:https://blog.csdn.net/weixin_44895651/article/details/115532107 作为一名以后想从事嵌…

ajax反序列化出错,将数据从jquery ajax请求传递给wcf服务失败了反序列化?

我使用下面的代码来调用wcf服务。如果我调用不带参数的(测试)方法,但返回一个字符串,它工作正常。如果我一个参数添加到我的方法,我得到一个奇怪的错误:将数据从jquery ajax请求传递给wcf服务失败了反序列化?{"Ex…

android 权限动态申请

名字其实有点让人感觉高大上"权限动态申请",其实也没有什么, 以前做Android程序的时候,比如需要打开摄像头 那么需要在 然后就可以了, 但是Android6.0之后呢,有些权限必须手动让用户同意才可以,哪些权限需要用户手动同意,哪些不需要这里大家自行百度 现在说一下 直接…

php mysql installed_CentOS在使用yum install php-mysql安装php时报错的解决方法

由于此项目的apache只是用于下载功能和安装phpAdmin来查找数据库,而且之前已经安装了Mysql 5.6,于是在部署是都是直接使用yum命令方法安装。但在使用yum install php-mysql时报了一大堆的错误:from install of mysql-libs-5.1.69-1.el6_4.x86…

ppt转html5 带动画_我复刻了IPhone12这页发布会PPT

今年苹果发布会没有看,但是最近看到三石兄发了一篇关于发布会现场的这页PPT复刻的推文,它介绍的是利用直线辅助的方法来完成。三石兄相关推文:iPhone12发布会PPT,你也能做!​mp.weixin.qq.com那么今天我们主要介绍如何…