博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法-冒泡算法
阅读量:6034 次
发布时间:2019-06-20

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

1.冒泡算法,是一种相对来说简单容易理解,易操作,但是不够便捷的一种排序方式

下面,通过一个例子,来快速的理解冒泡算法的含义,现在假如有一个列表a = [9, 5 ,1 ,4, 8, 6, 2, 3, 7 ]

列表a中含有数字1-9,现在通过冒泡算法来将列表中的数字进行正序排列。

第一遍:将下标为0的9作为中心点,和下标为1的数做比较,如果大于下标为1的数字则交换位置,否则保持位置不变

    如果交换了位置,则继续将9作为中心点,继续和下标为2的数值做比较,大于则交换位置,否则保持不变,以此类推。直到最后一个数为止

    如果没有交换位置,则按照作比较的下标为1的数字和下一位下标为2的数字进行比较,大于则交换位置,否则保持不变,以此类推。直到最后一个数为止

    a[0] = 9, a[1] = 5 9>5 则 a = [5, 9, 1, 4, 8, 6, 2, 3, 7] 

    a[1] = 9, a[2] = 1 9>2 则 a = [5, 1, 9, 4, 8, 6, 2, 3, 7] 

    以此类推

第二遍:当所有的数字都做了比较之后,得到的应该是这样的一个列表 a = [5, 1, 4, 8, 6, 2, 3, 7, 9]

    将下标为0数字和下标为1的数字作比较,如果大于则交换位置,否则位置不变,规则和第一遍的相同

    于是,按照这样的原理,当执行到第八遍的时候,列表就是一个正序排列的列表 a = [1, 2, 3, 4, 5, 6, 7, 8, 9]

2.冒泡算法仍然拥有优化改进的地方,具有相对的可操作性,但是也从侧面反映了冒泡算法庞大的计算量

转载于:https://www.cnblogs.com/zxh1297/p/9324191.html

你可能感兴趣的文章
Ztree异步加载自动展开节点
查看>>
反射操作公共成员变量
查看>>
Android热修复升级探索——代码修复冷启动方案
查看>>
学校宿舍的深夜之思考
查看>>
VB.NET 生成DBF文件
查看>>
编译安装nginx 1.9.15
查看>>
我的友情链接
查看>>
新的开始~~~
查看>>
字符串的扩展
查看>>
存储过程中调用webservice
查看>>
神奇语言 python 初识函数
查看>>
Windows安装Composer出现【Composer Security Warning】警告
查看>>
四 指针与数组 五 函数
查看>>
硬盘空间满了
查看>>
dutacm.club Water Problem(矩阵快速幂)
查看>>
深入JVM内核--GC算法和种类
查看>>
iOS的AssetsLibrary框架访问所有相片
查看>>
MySQLdb的安装
查看>>
读书笔记三
查看>>
数论 - 最小乘法逆元
查看>>