python 冒泡排序的总结
冒泡排序:
思路:
3 5 1 6 2
第一次:找到这些书中最大的一个,并把它放到最后
3、5找到大的数放到第二个位置1、5
5、1找到大的数放到第三个位置1、5、1
5、6找到大的数放到第四个位置
2、6找到大的数放到第五个位置
第五个位置就是最大的
#encoding=utf-8
a=[3,5,1,6,2]
for i in range(len(a)-1):
if a[i] > a[i+1]:
a[i],a[i+1] = a[i+1],a[i]
print ("a:",a)
D:\test\pytyon3>py -3 a.py
a: [3, 1, 5, 2, 6]
找到最大值了,现在开始找次大值
分析过程:
3 5 1 6 2
第一次:找到这些数中最大的一个,并把它放最后。
3、5找到大的数放到第二个位置
5、1找到大的数放到第三个位置
5、6找到大的数放到第四个位置
2、6找到大的数放到第五个位置
第五个位置就是最大的。
a,b = b,a
temp=a
a=b
b=temp
a= [3,5,1,6,2]
for i in range(len(a)-1):
if a[i]>a[i+1]:
a[i],a[i+1] = a[i+1],a[i]
print(a[-1])
找最大值了,现在次大值,次大值放在倒数第二的位置。
a= [3,5,1,2,6]
for i in range(len(a)-1-1):
if a[i]>a[i+1]:
a[i],a[i+1] = a[i+1],a[i]
print(a[-1])
找第三个最大的数,放到倒数第三个。
a= [3,1,2,5,6]
for i in range(len(a)-1-1-1):
if a[i]>a[i+1]:
a[i],a[i+1] = a[i+1],a[i]
print(a[-3])
找到第四大的书,放到倒数第四个。
for i in range(len(a)-1-1-1-1):
if a[i]>a[i+1]:
a[i],a[i+1] = a[i+1],a[i]
print(a[-4])
剩下的最后一个,就是最小的数,放到第一个
代码:
a=[3,5,1,2,6]
print(a)
for i in range(len(a)-1):#0,1,2,3
for j in range(len(a)-1-i):
if a[j] > a[j+1]:
a[j],a[j+1] = a[j+1],a[j]
print ("a:",a)
结果:
D:\test\pytyon3>py -3 a.py
[3, 5, 1, 2, 6]
a: [1, 2, 3, 5, 6]
怎么理解:
第一次内层循环的结果就是找到最大的值
第二次内层循环的结果就是找到次大的值,本次将忽略最后一个元素的比较
第二次内层循环的结果就是找到第三大的值,本次讲忽略倒数第二个元素和最后一个元素的比较
.......
python 冒泡排序的总结的更多相关文章
- python冒泡排序算法的实现代码
python冒泡排序算法的实现代码 这篇文章主要介绍了python冒泡排序算法的实现代码,大家参考使用 1.算法描述: (1)共循环 n-1 次 (2)每次循环中,如果 前面的数大于后面的数,就交换 ...
- 冒泡排序的思想 python 冒泡排序、递归排序
冒泡排序的时间复杂度是O(N^2) 冒泡排序的思想: 每次比较两个相邻的元素, 如果他们的顺序错误就把他们交换位置 比如有五个数: 12, 35, 99, 18, 76, 从大到小排序, 对相邻的两位 ...
- python 冒泡排序,快排
一.冒泡排序 1.1.冒泡的原理 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的 ...
- Python—冒泡排序算法
冒泡排序 一,介绍 冒泡排序(Bubble Sort)也是一种简单直观的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再 ...
- Python冒泡排序算法及其优化
冒泡排序 所谓冒泡,就是将元素两两之间进行比较,谁大就往后移动,直到将最大的元素排到最后面,接着再循环一趟,从头开始进行两两比较,而上一趟已经排好的那个元素就不用进行比较了.(图中排好序的元素标记为黄 ...
- C++/Python冒泡排序与选择排序算法详解
冒泡排序 冒泡排序算法又称交换排序算法,是从观察水中气泡变化构思而成,原理是从第一个元素开始比较相邻元素的大小,若大小顺序有误,则对调后再进行下一个元素的比较,就仿佛气泡逐渐从水底逐渐冒升到水面一样. ...
- python 冒泡排序
冒泡排序: 相邻的两个数字先进行比较,也就是li[0]和li[1]进行比较,如果不是大于的关系,就继续依次进行li[1]和li[2]比较,进行交换然后每一次扫描得到的新列表如下: li = [11,2 ...
- Python冒泡排序
冒泡排序,顾名思义,按照一定的规则,把数据一直排下去 直接上代码 import random def bubblesort(data): for i in range(len(data)-1,1,-1 ...
- python 冒泡排序,递归
冒泡排序:li = [33, 55, 58, 66, 58, 555,20000000000000000000000, 5555,5555, 5, 6, 62,1]for i in range(1,l ...
- python --- 冒泡排序算法
别想太多了,这个冒泡排序就是我们脑海中想到的那个冒泡,就好像是气泡一样,较小的元素比较轻,从而要往上浮出来, 冒泡排序算法. 要对‘气泡’序列处理若干遍.所谓一遍处理,就是自底向上检查一遍这个序列,并 ...
随机推荐
- Unity3D笔记 英保通九 创建数
Unity中创建树:可以直接通过程序自动来创建树木还可以手动创建树木(本质上在我看来就是给程序自动创建的树动动”小手术“) 一.程序自动创建树木 3.1.层次视图中创建:一个平行光.摄像机.地.数并且 ...
- python的接口和抽象类
抽象基类 有些面向对象的语言,如JAVA,支持接口,可以声明一个支持给定的一些方法方法,或者支持给定存取协议的类.抽象基类(或者ABCs)是Python里一个相同的特性.抽象基类由abc模块构成,包含 ...
- AD初体验
首先是因为想用51做个小项目,所以想到不如成这个机会把AD学一下吧,老师说我们这个专业无论画图还是电路设计都得精通,想想自己还是能力欠缺,到大三了才开始学习绘制 原理图. 好了废话不说,下面说说我的第 ...
- mysqladmin 命令详解
mysqladmin是一个执行管理操作的客户端程序.它可以用来检查服务器的配置和当前状态.创建和删除数据库等. mysqladmin 工具的使用格式: mysqladmin [option] comm ...
- HDU 3480 - Division - [斜率DP]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3480 Time Limit: 10000/5000 MS (Java/Others) Memory L ...
- 使用Homebrew在Mac OS X EI Capitan上安装与配置nginx和PHP
安装nginx brew install nginx sudo nginx 测试安装 在浏览器打开下面的链接地址 http://localhost:8080 nginx.conf配置 # HTTPS ...
- tcpdump抓包二进制tcp协议详细分析
1.tcpdump -i eth0 port 11751 and src host 192.168.1.34 -x -s0 tcpdump: verbose output suppressed, us ...
- WordCount优化
Github 地址:chaosrings/wcPro 1.PSP2.1表格 psp 2.1 psp阶段 预估耗时(分钟) 实际耗时(分钟) Planning 计划 10 10 Estimate 估计这 ...
- django时间的时区问题
在用django1.8版本做项目的时候遇到时间的存储与读取不一致的问题,网上找了很多帖子,但都没有讲明白.本文将在项目中遇到的问题及如何解决的尽可能详细的记录下来,当然本文参考了网上大量相关文章. 在 ...
- CentOS工作内容(一)CentOS6.4的安装 hwclock和date
CentOS工作内容(一)CentOS6.4的安装 hwclock和date 光碟安装 分配20G磁盘空间 插入光碟 选择第一项安装 如果要急救的话请选择第三项 启动安装进程 跳过光碟检测 选择nex ...