博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python复习冒泡排序
阅读量:4634 次
发布时间:2019-06-09

本文共 1469 字,大约阅读时间需要 4 分钟。

冒泡排序:

思路:

先找到最大值放到最右边:

#encoding=utf-8

 

a=[1,9,2,8,3,6,4]

print "a before change:",a

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 after change:",a

结果:

D:\>python test.py

a before change: [1, 9, 2, 8, 3, 6, 4]

a after change: [1, 2, 8, 3, 6, 4, 9]

找到最大值了,第二步找到次大值放到倒数第二个位置

 

 

#encoding=utf-8

 

a= [1, 2, 8, 3, 6, 4, 9]

 

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 after change:",a

结果:  

D:\>python test.py

a before change: [1, 2, 8, 3, 6, 4, 9]

a after change: [1, 2, 3, 6, 4, 8, 9]

 

找到倒数第二大的值了

 

第三步找到倒数第三大的数放到倒数第三个位置

a=[1, 2, 3, 6, 4, 8, 9]

print "a before change:",a

 

 

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 after change:",a

结果:

D:\>python test.py

a before change: [1, 2, 3, 6, 4, 8, 9]

a after change: [1, 2, 3, 4, 6, 8, 9]

 

依次类推,最后可以把整个列表排好序

从整体的过程来看,每次循环做的事情基本一样,从左到右依次用当前位置的数和

后边的数做比较,如果前边的数大,就把两个数换位置,循环结束后可以得到所循环的树中最大的数

每一次循环不一样的是循环所遍历数据长度都比上一次少一个,一共需要循环的次数是列表a的长度,那么把这六次循环写到一起就可以变成两层循环

外边的循环控制循环的次数即6次,i的变化值是0,1,2,3,4,5,即range(len(a)-1)

里边的循环控制每次循环的长度,每次长度减少1,j变化值是6次,5次,4次,3次,2次,1次,即每次为range(len(a)-i-1)次

循环每次做的事情不动改变

即:

#encoding=utf-8

 

a=[1,9,2,8,3,6,4]

print "a before change:",a

 

for i in range(len(a)-1):

    for j in range(len(a)-i-1):

        if a[j] > a[j+1]:

            a[j],a[j+1] = a[j+1],a[j]

print "a after change:",a

结果:

D:\>python test.py

a before change: [1, 9, 2, 8, 3, 6, 4]

a after change: [1, 2, 3, 4, 6, 8, 9]

转载于:https://www.cnblogs.com/xiaxiaoxu/p/10193279.html

你可能感兴趣的文章
ADC中宽带巴伦的使用
查看>>
Python元组&字典
查看>>
ubi实际使用
查看>>
curl命令使用
查看>>
PYTHON自动化Day12-unittest自动注册登录
查看>>
为 Asp.net 网站新增发送手机短信功能
查看>>
hdu 1002大数(Java)
查看>>
CSS3——对齐 组合选择符 伪类 伪元素 导航栏 下拉菜单
查看>>
NOIP2005普及组第4题 循环
查看>>
xbmc-12.0稳定版代码初探 (2) —— XBMC_HOME
查看>>
Java GC 日志详解
查看>>
MySQL主主配置说明
查看>>
[建议] GCC 新手入门【转】
查看>>
AC日记——[Hnoi2017]影魔 bzoj 4826
查看>>
Python:通过一个小案例深入理解IO多路复用
查看>>
自定义View圆
查看>>
min stack
查看>>
Golang的接口
查看>>
《Java虚拟机规范》阅读(三):Class文件格式
查看>>
django中间件
查看>>