鱼C论坛

 找回密码
 立即注册
查看: 5075|回复: 8

[小天才教程] 0 1 0 7 - 小天才冒泡排序法 - 【深度扫盲】

[复制链接]
发表于 2016-12-5 11:23:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2016-12-5 15:30 编辑

0.gif


随机输入一串数字,然后基于冒泡排序,从大到小排列而成!

来,这里有小甲鱼老湿讲的一片冒泡排序!相当经典,传送门 -> ❂

好吧,我在用非常简单的语言解释下哈:

原理是:

临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换

这样一趟过去后,最大或最小的数字被交换到了最后一位

然后再从头开始进行两两比较交换,直到倒数第二位时结束


例子为从小到大排序,即最大的放最后!

假设,现在的数列是:

8,5,6,7,3,9


第一次,比较第一位。

8,5

8>5 , 故而交换


第一次循环 位置1 位置2 位置3 位置4 位置5 位置6
第一次 5 8 6 7 3 9
第二次 5 6 87 3 9
第三次 5 6 7 8 3 9
第四次 5 67 3 8 9
第五次 5 6 7 3 8 9


第二次循环,仍是从头开始。

因为5 < 6 ,所以不交换。

故而递增下一位判断。

第二次循环 位置1 位置2 位置3 位置4 位置5 位置6
第一次 5 6 7 38 9
第二次 5 6 7 3 8 9
第三次 5 6 3 7 8 9
第四次 5 6 3 7 8 9


第三次循环 位置1 位置2 位置3 位置4 位置5 位置6
第一次 5 6 3 7 8 9
第二次 5 3 6 7 8 9



第四次循环 位置1 位置2 位置3 位置4 位置5 位置6
第一次 3 5 6 78 9


最终得到从小到大排序:

3,5,6,7,8,9


有没有觉得很好玩~

脚本实现也是这样,每次按位比较,到倒数第二项就结束!

直到第一位,小于(大于)第二位,就按从小(大)到大(小)的数据排列。

在写脚本前,有些问题还需要深入思考下!

就是循环种类!

你发现没有其实在冒泡排序中存在两种排序方式。

第一种,小循环,按照位数两两比较

第二种,大循环,进行每轮之间的循环!

小循环,很好理解。

那么问题来了,大循环,如何判断是否要进行下一轮循环呢?

没错,就是设置一个判断变量,用来标志是否要进行下一轮。

靠!

你这说跟没说一样,好不好啦~

那怎样确定这个判断变量呢?

没错就是通过小循环,来定的!

如果小循环发生了调换,那么这个判断值默认为0,认为需要进行下一轮

如果小循环第一、二位,都没有发生调换,判断值为1,那就不需要进行下一轮啦!


来吧,看脚本实现:

0.png


冒泡排序.zip (59.8 KB, 下载次数: 8, 售价: 10 鱼币)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-1-9 12:43:28 | 显示全部楼层
不二大大,新人报道,非常感谢您的分享,可惜不够分下载看看了!

评分

参与人数 1鱼币 +10 收起 理由
不二如是 + 10 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-9 12:59:07 | 显示全部楼层
buluan 发表于 2017-1-9 12:43
不二大大,新人报道,非常感谢您的分享,可惜不够分下载看看了!

欢迎~

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-9 16:12:42 | 显示全部楼层


不过看图片自己照着弄成了,冒泡程序完成了,谢谢不二老师!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-9 18:46:54 | 显示全部楼层
buluan 发表于 2017-1-9 16:12
不过看图片自己照着弄成了,冒泡程序完成了,谢谢不二老师!

完成就好~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-10 19:13:13 | 显示全部楼层
温故而知新~感谢分享~顺便问一下:我们一般说的冒泡排序是指原始的冒泡排序还是改进后的冒泡排序呀,做了一道题,答案说冒泡排序的比较次数与初始序列有关。但是除非设置一个flag来判断是否已经有序,不然比较次数肯定是n(n-1)/2呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-10 19:15:05 | 显示全部楼层
识海君 发表于 2017-1-10 19:13
温故而知新~感谢分享~顺便问一下:我们一般说的冒泡排序是指原始的冒泡排序还是改进后的冒泡排序呀,做了一 ...

是的,冒泡排序,只跟数组个数有关系

准确说,排序次数 <=n(n-1)/2

手动数一次就有感觉了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-12 23:37:48 From FishC Mobile | 显示全部楼层
m9(`)就是你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-13 07:01:19 | 显示全部楼层

m9金立手机吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 21:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表