本文章属于转载,但是再最后的冒泡教程中,我写了自己的理解以及自己的一些建议,有什么不懂得,可以直接留言问我!

本文章转载于csdn,原作者:f_chenchen;点击链接即可跳转!
点击

对列表的数据进行排序:
方法一:
直接用列表自带函数排序,.sort()方法默认升序,将参数reverse改为True,改为降序:

list = [7, 4, 3, 67, 34, 1, 8]
list.sort()
print(list)[1, 3, 4, 7, 8, 34, 67]
list.sort(reverse = True)
print(list)[67, 34, 8, 7, 4, 3, 1]

方法二:

for循环,从list中取最小值,插入到一个空列表(用append默认插入列表最后边),然后把原列表中的最小值删除,再次取最小值,循环len(list)次。如果要求倒序,把min改为max即可:

list = [7, 4, 3, 67, 34, 1, 8]
a= []
for i in range(len(list)):a.append(min(list))list.remove(min(list))
print(a)[1, 3, 4, 7, 8, 34, 67]

方法三:

冒泡排序:从小到大,比较相邻的元素,如果前一个比后一个大,交换之。
a是外层,轮,b是内层,次
len(list) = 7
第一轮:
a = 0
b in range(6),循环执行6次
第一次 4,7比较,比较后[4,7, 3, 67, 34, 1, 8]
第二次 7,3比较,比较后[4,3, 7, 67, 34, 1, 8]
……
第六次 8,67比较,比较后[4, 3, 7, 34, 1, 8, 67]

第二轮:
a = 1
b in range(5),循环执行5次(因为在第一轮已经将最大值67判断出来,不用再和67做比较)
第一次 4,3比较,比较后[3, 4, 7, 34, 1, 8, 67]
第二次 4,7比较,比较后[3, 4, 7, 34, 1, 8, 67]
第五次34,67比较,比较后[3, 4, 7, 1, 8, 34, 67]

第三轮:
a = 2
b in range(4),循环执行4次,34,67的顺序已经比较出来
第一次3,4比较,比较后[3, 4, 7, 1, 8, 34, 67]
第二次4,7比较,比较后[3, 4, 7, 1, 8, 34, 67]
第三次7,1比较,比较后[3, 4, 1, 7, 8, 34, 67]
第四次7,8比较,比较后[3, 4, 1, 7, 8, 34, 67]

第四轮:
a = 3
b in range(3),循环执行3次,8,34,67的顺序已经比较出来
第一次3,4比较,比较后[3, 4, 1, 7, 8, 34, 67]
第二次4,1比较,比较后[3, 1, 4, 7, 8, 34, 67]
第三次4,7比较,比较后[3, 1, 4, 7, 8, 34, 67]

第五轮:
a = 4
b in range(2),循环执行两轮7,8,34,67的顺序已经比较出来
第一次3,1比较,比较后[1, 3, 4, 7, 8, 34, 67]
第二次3,4比较,比较后[1, 3, 4, 7, 8, 34, 67]

第六轮
a = 5
b in range(1),循环执行一轮,4, 7, 8, 34, 67的顺序已经比较出来
第一次,1,3比较,比较后[1, 3, 4, 7, 8, 34, 67]

此时,轮和次都循环完毕,排序完成
从大到小的顺序,把 if list[b] > list[b+1]改为if list[b] < list[b+1]即可

list = [7, 4, 3, 67, 34, 1, 8]
for a in range(len(list)):for b in range(len(list)-a-1):if list[b] > list[b+1]:list[b+1],list[b]=list[b],list[b+1]
print(list)     

自己得理解:

#使用冒泡方法进行排序!
#资料、学生的成长档案!
test1 = [2,56,1,767,33,88,22]
for i in range(len(test1)):#这个是一共循环7次,从零开始,一直到7#第一次运行,a是零。次数是6#第二次运行,a是1;次数是6#但是由于第一次的数字换到了第二个数,第二个数往再根据后面坐标a+1,进行比对#第二个for循环体结束,一个数的位置:#这个是无法用言语表达,建议各位兄弟不要急,有时间就看看,就算暂时没懂,也没事#多看看视频教学,看不同老师的讲解#我看了两三天才会,过来人经验,不要急!!#第二个循环体结束后,会再次执行第一个for,i变成了1#然后再次执行第二个for,此时第二个就变成了for i in range(5)),因为最大数经过第一轮的运行,已经确定了最大数for a in range(len(test1)-i-1):#这个第一次执行就循环6次,因为要进行6次比对,然后比过之后就不用再比,就减去每次执行的iif test1[a]>test1[a+1]:test1[a],test1[a+1]=test1[a+1],test1[a]
print(test1)

python中的三种排序方法,使用冒泡对列表排序,使用自带sort方法进行排序相关推荐

  1. python选择语句是什么语句_Python语言中的三种选择语句

    本文将详细介绍Python语言中的三种选择语句:if语句,if/else语句和if/elif/else语句.对于每种语句,我们都提供了相应的流程图.与此同时,我们给出许多简单的示例程序,以帮助读者加深 ...

  2. python请输入_python中的三种输入方式

    python中的三种输入方式 python2.X python2.x中以下三个函数都支持: raw_input() input() sys.stdin.readline() raw_input( )将 ...

  3. 简述python中的几种数据类型,简单介绍Python中的几种数据类型

    简单介绍Python中的几种数据类型 python 里面分为 基本数据类型 和 复合数据类型 基本数据类型包括:数值 字符串 布尔 和 none 复合数据类型包括:列表 元组 字典 和集合怎么算是深情 ...

  4. Oracle的join默认为,Oracle中的三种Join方法详解

    这里将为大家介绍Oracle中的三种Join方法,Nested loop join.Sort merge join和Hash join.整理出来以便帮助大家学习. 基本概念 Nested loop j ...

  5. oracle hash join outer,CSS_浅谈Oracle中的三种Join方法,基本概念 Nested loop join: Outer - phpStudy...

    浅谈Oracle中的三种Join方法 基本概念 Nested loop join: Outer table中的每一行与inner table中的相应记录join,类似一个嵌套的循环. Sort mer ...

  6. 【Arduino串口数据保存到excel中常用三种方法】

    [Arduino串口数据保存到excel中常用三种方法] 1. 前言 2. 利用excel自带Data Streamer读取 2.1 启用 Data Streamer 加载项 2.2 刷写代码并将微控 ...

  7. pca算法python代码_三种方法实现PCA算法(Python)

    主成分分析,即Principal Component Analysis(PCA),是多元统计中的重要内容,也广泛应用于机器学习和其它领域.它的主要作用是对高维数据进行降维.PCA把原先的n个特征用数目 ...

  8. Windows下安装Python 模块的三种方法

    方法一:cmd命令行窗口 首先打开windows上的cmd命令行窗口,再将目录切换到python运行的那个目录下,那怎么查看自己是在那个目录下呢? 鼠标右键点击file,依次点开就可以看到运行路径.在 ...

  9. python定时爬虫三种方法

    python定时爬虫三种方法 第一种 import timefrom scrapy import cmdlinedef doSth():# 把爬虫程序放在这个类里 zhilian_spider 是爬虫 ...

  10. Plotly中绘制三种经典的股票交易图表(含视频讲解)

    作者:Lemon 来源:Python数据之道 Plotly中绘制三种经典的 股票交易图表(含视频讲解) 大家好,我是 Lemon . 背景 前一段时间, Lemon 发了一期视频,分享了 Plotly ...

最新文章

  1. 图灵奖得主Bengio再次警示:可解释因果关系是深度学习发展的当务之急
  2. php 执行效率,PHP 函数执行效率的小比较
  3. 阿里巴巴如何改善开发人员在 K8s 上的体验?
  4. HoughLine变换
  5. 今天的这可是有原因的飞鸽传书
  6. 数据库工作笔记012---mysql触发器trigger 实例详解_保证数据库完整性还是不错的
  7. 想自学一下程序员,该学些什么?
  8. 多路电源管理芯片(记录)
  9. DDR内存家族演进史
  10. 海马玩模拟器 v0.7.2 官方版​
  11. android support v13,java – 程序类型已存在:android.support.v13.v...
  12. flex布局避免父盒子被撑开,滚轮失效问题
  13. html5沙漏动画,CSS3 沙漏动画
  14. maven通过mvn命令添加oracle依赖
  15. R语言获取GEO表达数据
  16. Neo4j 第一篇:在Windows环境中安装Neo4j
  17. 结构化数据丨Python爬虫基础入门系列(7)
  18. 车联网行业:2022年车联网数据安全监管制度研究报告
  19. python中true是什么意思_python中的true是什么
  20. Pycharm使用anaconda环境 (原环境 base)

热门文章

  1. 毕设题目:Matlab语音隐写
  2. 【风电功率预测】基于matlab灰狼算法优化LSTM风电功率预测【含Matlab源码 1392期】
  3. 【基础教程】关于matlab GUI重命名的问题【739期】
  4. autocoder自动代码生成器_Spring Boot 集成MyBatis Plus代码生成器
  5. r-cnn 行人检测_了解用于对象检测的快速R-CNN和快速R-CNN。
  6. python:数组和列表相互转化
  7. android音频杂音问题_如何消除音频中的噪声?用这个简单好用的音频剪辑软件就够了...
  8. com app.html,downloadApp.html
  9. lamp rpm mysql_LAMP基于RPM包实现(httpd与php以module方式结合) 1
  10. Web Resources on Patten Recognition