文档章节

学习冒泡排序算法

rainmanqqst
 rainmanqqst
发布于 2014/09/14 08:25
字数 284
阅读 21
收藏 0

    冒泡排序算法进行的是这样一个过程:遍历文件,如果近邻的两个元素大小顺序不对,就将两者交换,重复这样的操作指导整个文件排好序。

    假设我们都是将文件元素从右移到左的。第一遍中,当遇到最小的元素时,将它与左边元素逐个交换,直到将最小的元素移到队列的最左边。然后第二遍中,将第二小的元素放到队列左边第二位中,依次类推。因此,一共需要N遍。冒泡排序实际上是一种选择排序,但需要开销更多工作将每个元素放到合适的位置。

python代码实现:

#!/usr/bin/env python

def swap(array,i,j):
    temp = array[i]
    array[i] = array[j]
    array[j] = temp

def bubble(array,begin,end):
    if(end > begin >= 0):
        for i in range(end):
            for j in range (end,begin+i,-1):
                if array[j] < array[j-1]:
                    swap(array,j,j-1)
            print array
            print '--------------------'
if __name__=="__main__":
    array = [4,5,1,8,0,3,6]
    bubble(array,0,len(array)-1)
    print array

参考文档:《算法:C语言实现》

© 著作权归作者所有

rainmanqqst
粉丝 8
博文 65
码字总数 37021
作品 0
浦东
程序员
私信 提问
美团面试,我竟然输给了冒泡排序…

(给程序员的那些事加星标) 前一阵子有个读者在微信里跟我聊了一件很有趣的事情,他去美团实习,面试让他哭笑不得,因为败在了冒泡排序上。 情况是这样子的,当时和面试官聊的感觉还可以,就...

程序员的那些事_
2018/12/09
0
0
面试 9:Java 玩转冒泡排序

面试 9:用 Java 实现冒泡排序 南尘的朋友们,新的一周好,原本打算继续讲链表考点算法的,这里姑且是卡一段。虽然在我们 Android 开发中,很少涉及到排序算法,因为基本官方都帮我们封装好了...

nanchen2251
2018/07/16
0
0
排序练习:冒泡排序

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

唐佳
2016/09/14
22
3
JavaScript 数据结构与算法之美 - 冒泡排序、插入排序、选择排序

1. 前言 算法为王。 想学好前端,先练好内功,只有内功深厚者,前端之路才会走得更远。 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScript ,旨在入门数据结构与算法和方便...

天明夜尽
07/22
0
0
算法分析(3)——冒泡排序真的慢吗?

  在初学编程的时候,曾经有两个问题让我感到迷惑,第一个是利用中间变量交换另外两个变量,另一个就是冒泡排序。但是后来发现,冒泡排序几乎是所有排序算法中最简并且容易实现的,实际上许...

我是8位的
03/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

PostgreSQL 11.3 locking

rudi
今天
5
0
Mybatis Plus sql注入器

一、继承AbstractMethod /** * @author beth * @data 2019-10-23 20:39 */public class DeleteAllMethod extends AbstractMethod { @Override public MappedStatement injectMap......

一个yuanbeth
今天
10
1
一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要...

码农实战
今天
4
0
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率...

武培轩
今天
8
0
队列-链式(c/c++实现)

队列是在线性表功能稍作修改形成的,在生活中排队是不能插队的吧,先排队先得到对待,慢来得排在最后面,这样来就形成了”先进先出“的队列。作用就是通过伟大的程序员来实现算法解决现实生活...

白客C
今天
81
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部