加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

PHP排序算法之直接插入排序(Straight Insertion Sort)实例说明

发布时间:2021-05-23 06:37:42 所属栏目:编程 来源:网络整理
导读:本篇章节讲授PHP排序算法之直接插入排序(Straight Insertion Sort)。供各人参考研究详细如下: 算法引入: 在这里我们依然行使《》内里的一个例子: 扑克牌是我们险些每小我私人都玩过的游戏。平常我们开始的时辰一样平常都是一小我私人发牌,其他人都是一边摸

本篇章节讲授PHP排序算法之直接插入排序(Straight Insertion Sort)。分享给各人供各人参考,详细如下:

算法引入:

在这里我们依然行使《》内里的一个例子:

扑克牌是我们险些每小我私人都玩过的游戏。平常我们开始的时辰一样平常都是一小我私人发牌,其他人都是一边摸牌,一边理牌,若是你摸上的第一张牌是 5,第二张牌是 3,天然而然的我们把 3 插到 5 的前面;第三张牌是 4,查到 3 和 5 的中间;第四张牌是 6,放到 5 的后头;第五张牌是 2,插到 3 的前面;……。最后当我们摸完全部的牌时,手上的牌都是从小到大(点数)排好序的。

我们来看这个次序:

根基头脑:

直接插入排序的根基头脑是 : 每次从无序表中取出第一个元素,把它插入到有序表的吻合位置,使有序表如故有序。

第一趟较量前两个数,然后把第二个数按巨细插入到有序表中; 第二趟把第三个数据与前两个数从后向前扫描,把第三个数按巨细插入到有序表中;依次举办下去,举办了(n-1)趟扫描往后就完成了整个排序进程。

直接插入排序是由两层嵌套轮回构成的。外层轮回标识并抉择待较量的数值。内层轮回为待较量数值确定其最终位置。直接插入排序是将待较量的数值与它的前一个数值举办较量,以是外层轮回是从第二个数值开始的。当前一数值比待较量数值大的环境下继承轮回较量,直到找到比待较量数值小的并将待较量数值置入厥后一位置,竣事该次轮回。

插入排序的根基要领是:每步将一个待排序的记录按其要害字的巨细插到前面已经排序的序列中的恰当位置,直到所有记录插入完毕为止。

算法实现:

= 0 && $arr[$j] > $temp;$j --){ $arr[$j + 1] = $arr[$j]; //记录后移 } $arr[$j + 1] = $temp; //插入到正确的位置 } } $arr = array(9,1,5,8,3,7,4,6,2); InsertSort($arr); var_dump($arr);

运行功效:

int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) [5]=> int(6) [6]=> int(7) [7]=> int(8) [8]=> int(9) }

直接插入排序算法的时刻伟大度为

直接插入排序是不变排序。

本文参考自《》,在此仅作记录,利便往后查阅,大神勿喷!

PS:这里再为各人保举一款关于排序的演示器材供各人参考:

在线动画演示插入/选择/冒泡/合并/希尔/快速排序算法进程器材:

更多关于PHP相干内容感乐趣的读者可查察本站专题:《》、《》、《》、《》、《》、《》及《》

但愿本文所述对各人PHP措施计划有所辅佐。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读