冒泡排序:

思路:

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 冒泡排序的总结的更多相关文章

  1. python冒泡排序算法的实现代码

    python冒泡排序算法的实现代码 这篇文章主要介绍了python冒泡排序算法的实现代码,大家参考使用 1.算法描述: (1)共循环 n-1 次 (2)每次循环中,如果 前面的数大于后面的数,就交换 ...

  2. 冒泡排序的思想 python 冒泡排序、递归排序

    冒泡排序的时间复杂度是O(N^2) 冒泡排序的思想: 每次比较两个相邻的元素, 如果他们的顺序错误就把他们交换位置 比如有五个数: 12, 35, 99, 18, 76, 从大到小排序, 对相邻的两位 ...

  3. python 冒泡排序,快排

    一.冒泡排序 1.1.冒泡的原理 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的 ...

  4. Python—冒泡排序算法

    冒泡排序 一,介绍 冒泡排序(Bubble Sort)也是一种简单直观的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再 ...

  5. Python冒泡排序算法及其优化

    冒泡排序 所谓冒泡,就是将元素两两之间进行比较,谁大就往后移动,直到将最大的元素排到最后面,接着再循环一趟,从头开始进行两两比较,而上一趟已经排好的那个元素就不用进行比较了.(图中排好序的元素标记为黄 ...

  6. C++/Python冒泡排序与选择排序算法详解

    冒泡排序 冒泡排序算法又称交换排序算法,是从观察水中气泡变化构思而成,原理是从第一个元素开始比较相邻元素的大小,若大小顺序有误,则对调后再进行下一个元素的比较,就仿佛气泡逐渐从水底逐渐冒升到水面一样. ...

  7. python 冒泡排序

    冒泡排序: 相邻的两个数字先进行比较,也就是li[0]和li[1]进行比较,如果不是大于的关系,就继续依次进行li[1]和li[2]比较,进行交换然后每一次扫描得到的新列表如下: li = [11,2 ...

  8. Python冒泡排序

    冒泡排序,顾名思义,按照一定的规则,把数据一直排下去 直接上代码 import random def bubblesort(data): for i in range(len(data)-1,1,-1 ...

  9. python 冒泡排序,递归

    冒泡排序:li = [33, 55, 58, 66, 58, 555,20000000000000000000000, 5555,5555, 5, 6, 62,1]for i in range(1,l ...

  10. python --- 冒泡排序算法

    别想太多了,这个冒泡排序就是我们脑海中想到的那个冒泡,就好像是气泡一样,较小的元素比较轻,从而要往上浮出来, 冒泡排序算法. 要对‘气泡’序列处理若干遍.所谓一遍处理,就是自底向上检查一遍这个序列,并 ...

随机推荐

  1. Maven 搭建 SSM框架——Spring+SpringMVC+Mybatis的搭建教程

    一:概述 SSM框架在项目开发中经常使用到,相比于SSH框架,它在仅几年的开发中运用的更加广泛. Spring作为一个轻量级的框架,有很多的拓展功能,最主要的我们一般项目使用的就是IOC和AOP.Sp ...

  2. [LintCode] Find the Missing Number 寻找丢失的数字

    Given an array contains N numbers of 0 .. N, find which number doesn't exist in the array. Example G ...

  3. Python中各种括号的区别、用途及使用方法

    python语言最常见的括号有三种,分别是:小括号( ).中括号[ ]和大括号也叫做花括号{ }.其作用也各不相同,分别用来代表不同的python基本内置数据类型. python中的小括号( ):代表 ...

  4. Oracle备份恢复之冷备份恢复与异机还原

    (同平台:rhel6.4~rhel6.4:同版本:oracle 11g 11.2.0.1~ oracle 11g 11.2.0.1) 冷备份发生在数据库关闭状态下,直接拷贝物理文件的备份方式,备份数据 ...

  5. LCA——最近公共祖先

    今天终于把倍增的LCA搞懂了!尽管周测都没写,尽管lca其实很简单,但这也是进度君的往前一点点的快乐.学渣的呻吟. 倍增的lca其实关键就在于二进制的二进制的拆分(显然是两次的拆分,很奇妙,懂二进制的 ...

  6. sql中select into和insert into的区别

    select into主要是作用于没有新建表,在复制数据的时候新建 insert into主要作用于已经新建了一个表,直接把要复制的数据复制到新建好的表中

  7. 网站优化不等于搜索引擎优化SEO

    对于SEO相信搞网络营销的人基本上都知道这个名词,英文全称为search engine optimization,中文一般叫搜索引擎优化,也有的叫搜索引擎定位(Search Engine Positi ...

  8. MongoDB的数据恢复

    当MongoDB正在插入或更新数据时,若突然出现断电或者不可逆转的摧毁性事件发生时,MongoDB没有像oracle或sql server这种关系型数据库提供事物机制,所以会产生垃圾数据.但Mongo ...

  9. linux环境下python的部署

    linux系统环境自带python2.6,但有时我们项目使用的版本可能是3.x以上等等,此时我们需要在linux中再安装项目所需的python版本,此时就涉及多版本共存问题了,很多同学在安装多个版本P ...

  10. CentOS7.2配置vsftpd

    环境 CentOS7.2 (安装镜像CentOS-7-x86_64-DVD-1611) 本文默认使用root用户操作 目标 实现CentOS7.2上安装vsftpd,使用新创建的ftpuser用户便可 ...