冒泡排序:

思路:

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

#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]

python复习冒泡排序的更多相关文章

  1. python笔记--冒泡排序升级版

    前言 面试的时候经常有面试官喜欢问如何进行冒泡排序?这个问题相信能难倒一批英雄好汉,本篇就详细讲解如何用python进行冒泡排序. 一.基本原理 1.概念: 冒泡排序(Bubble Sort),是一种 ...

  2. python与冒泡排序

    上一篇文章,介绍了一个非常快的排序算法--桶排序,但是它的缺点就是太耗资源了,这次要实现的算法就不用太耗资源了,它就是冒泡排序. 问题提出: 将以下数据升序排列:9, 2, 8, 6, 4 冒泡排序原 ...

  3. python笔记-冒泡排序【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python/ 前言 面试的时候经常有面试官喜欢问如何进行冒泡排序?这个问题相信能难倒一 ...

  4. 运用python实现冒泡排序算法

    冒泡排序,一个经典的排序算法,因在算法运行中,极值会像水底的气泡一样逐渐冒出来,因此而得名. 冒泡排序的过程是比较两个相邻元素的大小,然后根据大小交换位置,这样从列表左端开始冒泡,最后最大值会依次从右 ...

  5. Python版冒泡排序算法

    0 为什么写本文 一方面对经典排序算法冒泡排序进行复习,另一方面通过实际应用来检验python基础知识的掌握情况,包括range函数.len函数.for循环.if语句.函数定义与调用.列表的排序等知识 ...

  6. python 实现冒泡排序与快速排序 遇到的错误与问题

    今天看了兄弟连php里面的冒泡排序与快速排序,想了下应该可以用python实现. 冒泡排序函数: def mysort(x): len1 = len(x) for i in range(len1-1, ...

  7. 用Python复习离散数学(一)

    最近要复习离散数学,不想挂啊,但是又想编程,大家知道啦,程序员离不开代码啊,所用想边复习边写代码,所以就自己用代码去实现一下离散的知识点,当做复习,自知自己的Python很渣,也想借此巩固一下基础,哈 ...

  8. python 算法 -- 冒泡排序

    python 排序算法 -- 冒泡排序 原理 从数组的底部开始, 两两比较大小, 小的在下,大的在上, 依次类推直到顶部. 当整个数组比较完毕, 则最上面的一定是最大值(此即冒泡的由来); 当第一轮比 ...

  9. python实现冒泡排序和快速排序

    冒泡排序和快排的python实现: data = [1, 3, 5, 10, 4, 7] times = 0 "冒泡排序" for i in range(len(data)): f ...

随机推荐

  1. ConcurrentHashMap详解

    public class ConcurrentHashMap<K,V>extends AbstractMap<K,V>implements ConcurrentMap<K ...

  2. 如何处理浏览器缓存 加t

  3. Github上Laravel开源排行榜Star数31-60名

    Github上Laravel开源排行榜Star数31-60名,罗列所有 Laravel 开源扩展包,含 Github Star 数量,下载数量和项目简介.默认排序是按Star数量从多到少来排 31.c ...

  4. 帝国cms搜索关键字调用标签(showsearch)怎么用

    前面ytkah介绍了如何让帝国CMS7.2搜索模板支持动态标签调用,现在我们来说说怎么调用帝国cms搜索关键字调用标签(showsearch).在帝国cms后台那边的使用方法:[showsearch] ...

  5. 报错解决——OSError: libdarknet.so: cannot open shared object file: No such file or directory

    在python目录下打开终端,输入 python darknet.py 结果报错 Traceback (most recent call last): File “darknet.py”, line ...

  6. PHP 类名::class含义

    自 PHP 5.5 起,关键词 class 也可用于类名的解析. 使用 ClassName::class 可以获取一个字符串,包含了类 ClassName 的完全限定名称.这对使用了命名空间的类尤其有 ...

  7. Pandas 常见的基本方法

    说明:文章所有内容均截选自实验楼教程[Pandas 使用教程],想要查看教程完整内容,点击教程即可~ 前言: Pandas 是非常著名的开源数据处理工具,我们可以通过它对数据集进行快速读取.转换.过滤 ...

  8. vue弹窗组件

    文件结构 component.vue <template> <div class="_vuedals" v-show="show"> & ...

  9. IntelliJ IDEA 17 本地LicenseServer激活

    注意:此方法适用于Idea v2017.2.x 版本及以前版本. IntelliJ IDEA及破解包下载地址:百度网盘   密码:hlko 一.将IntelliJIDEALicenseServer.e ...

  10. 从零开始一起学习SLAM | 你好,点云

    本文提纲 先热热身点云是啥你知道点云优缺点吗?点云库PCL:开发者的福音PCL安装指北炒鸡简单的PCL实践留个作业再走先热热身 小白:hi,师兄,好久不见师兄:师妹好,上周单应矩阵作业做了吗?小白:嗯 ...