您的位置 首页 php

PHP算法大全(4)体育委员帮差生排队-插入排序算法

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

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

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


前言

上一节我们讨论了利用 选择排序 让班长帮着差生排队,这次我们使用另外一种办法排队-插入排序算法。另外:昨天的选择排序的动画图不动了,已经修正。

内容概要:

1、什么是插入排序算法。

2、插入排序算法的动画图。

3、插入算法的PHP代码实现。

一、什么是插入排序。

书接上回。老师又不满意(对不起老师,剧情需要,当然也有可能老师让差生出点洋相),问班上同学,你们谁有新的排序方法,体育委员自告奋勇。

差生的位置还是一样,ABCDE。

五个同学排队

体育委员的排序思路是这样的:

第一轮:假设第一个位置(A)的同学已经排好,让第二个位置(B)同学出列,和第一个位置(A)的同学比较分数,如果分数比第一位置(A)小的话,占据第一位置(A),原来第一位置(A)的同学顺延往后排。这样,A位置和B位置按照分数多少已经升序排好。

第二轮:第三位置(C)的同学出列,分别和第二位置(B)先比较,如果比第二位置的同学分数大,则位置不动,直接进行下一轮。如果比第二个位置的同学分数少,则互换一下位置。然后第二个位置的同学(互换之后的同学)再和第一位置(A)的同学比较,如果比第一个同学分数大,则位置不动,直接进入下一轮。否则,与第一位置的同学互换位置。这样,ABC三个位置上的同学按照分数多少已经升序排好。

第三轮:第四位值(D)的同学出列,按照第二轮的思路依次比较,完成ABCD四个位置的同学按照分数多少升序排好。

第四轮:第五位值(E)的同学出列,同样道理,排好ABCDE位置同学,排序结束(体育委员还真行啊)。

总结一下:在要排序的一组数中,假设前面的数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。这种排序方法就是插入排序算法。

二、插入排序算法的动画图。

插入排序算法动画

三、插入排序算法的PHP代码实现

还是以数组的形式,代码献丑如下:

代码加入了注释,估计大家可以看懂。有问题评论区提出来吧。

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

文章标题:PHP算法大全(4)体育委员帮差生排队-插入排序算法

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

关于作者: 智云科技

热门文章

网站地图