您的位置 首页 php

PHP算法大全(2)冒泡排序算法解决差生排序问题

【欢迎关注、分享、点赞或评论,您的一个举手之劳,就是最大的鼓励!】

欢迎关注【php在路上】每天进步一点。

码字不容易,尊重版权,转载请注明出处:PHP在路上。


前言

算法是有用的,也是枯燥的,我们尽量用生活中的例子来描述。排序算法是算法中最基础的部分,今天我们一起来排序算法中的冒泡排序算法。

内容概要:

1、什么是 冒泡算法 -差生排序问题。

2、冒泡算法的动画图。

3、冒泡算法的PHP代码实现。

一、什么是冒泡算法-差生排序问题。

时光回到你上小学的时候某日,老师大怒:这次数学考试平均分在不及格的,站到讲台前来!5个同学不情愿的,慢吞吞的走到讲台前,他们随机的站成一排。

老师说: 按照你们的成绩从小到大站成一排!

假设这五位同学的位置分别是ABCDE,他们相互不知道对方成绩,只能现场问旁边的同学。

使用美帝的小朋友补充一下画面

现实排序情况是比较乱的,站来站去,排队很长时间。

这时候冒泡排序算法就能帮上忙了。

首先说明一下:ABCDE是位置编号,排序的时候,我们不关心同学的名字,只关心某个位置上站的同学分数合适就行。

顺序是这样的,首先 A位置的同学和B位置的同学先相互问对方成绩,如果后者成绩小(差),他俩换一下位置,否则别动。同理,再比较B和C位置的同学成绩,如果C位置同学成绩小(差),就互换。依次再比较C和D、D和E位置的同学,

这样比较一轮,做的结果是ABCDE五个位置的同学两两比较了一次,这样做的结果有两个:

同理再来一轮比较,结果还是会将较差成绩的同学位置向前排一位,成绩第二好的同学会排到合适位置(D位置)不同的是,我们这次只需要比较ABCD四个位置就行了。

继续按照一轮一轮的比下去,会有条不紊的完成老师的排队要求的。

我们计算一下需要比多少轮:

第一轮:ABCDE

第二轮:ABCD

第三轮:ABC

第四轮:AB

也就是会比较4轮就可以完成要求了。

这就是 冒泡排序 。书面语言我就不抄了,大家自行搜索。

虽然比较啰嗦,但是我觉得我讲清楚了,不知大家是否清楚?请在评论中给个意见吧,感谢支持PHP在路上。

二、冒泡算法的动画图。

我们假设ABCDE位置上的成绩分别是30, 49, 15, 21, 19;看下面的模拟动画。

【具体这个动画图是怎么制作的,如果想知道的话,就在评论中告诉我哈。】

冒泡排序算法动画示意图

三、冒泡算法的PHP代码实现

PHP代码的实现是使用数组的方式,这里需要理解两点:

1、数组的下标就相当于我们例子中的ABCDE位置的概念。

2、数组的元素就是考试的成绩。

需要明确的是,例子中,我们实质上是按照成绩来排序的,千万不要说同学理解成数组的下标,否则会糊涂。

我也贴出来自己写的PHP冒泡排序算法。

运行结果就不贴出来了,和上面的动画图的结果是一样的。

冒泡排序比较简单,但面试和或笔试的时候,也会偶尔出现。而在实际的php程序开发过程中,是不需要写。


PS:这篇文章将近用了三个小时。不知道冒泡算法我说明白了吗?如果说明白了,请回复:666

有不合适的地方,欢迎评论中指出。

文章来源:智云一二三科技

文章标题:PHP算法大全(2)冒泡排序算法解决差生排序问题

文章地址:https://www.zhihuclub.com/77148.shtml

关于作者: 智云科技

热门文章

网站地图