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

php实现希尔排序算法的要领说明

发布时间:2021-03-31 21:05:56 所属栏目:编程 来源:网络整理
导读:本篇章节讲授php实现希尔排序算法的要领。供各人参考研究详细如下: 固然此刻各类措施说话都有其各自强盛的排序库函数,可是这些底层实现也都是操作这些基本或高级的排序算法。 领略这些伟大的排序算法照旧很故意思的,领会这些排序算法的精妙~ 希

本篇章节讲授php实现希尔排序算法的要领。分享给各人供各人参考,详细如下:

固然此刻各类措施说话都有其各自强盛的排序库函数,可是这些底层实现也都是操作这些基本或高级的排序算法。

领略这些伟大的排序算法照旧很故意思的,领会这些排序算法的精妙~

希尔排序(shell sort):希尔排序是基于插入排序的,区别在于插入排序是相邻的一个个较量(相同于希尔中h=1的气象),而希尔排序是间隔h的较量和替代。

希尔排序中一个常数因子n,原数组被分成各个小组,每个小组由h个元素构成,很也许会有多余的元素。虽然每次轮回的时辰,h也是递减的(h=h/n)。第一次轮回就是从下标为h开始。希尔排序的一个头脑就是,分成小组去排序。

领略这些算法,最好是有个图示。就先来代码吧。

= 1){ // 将数组变为h有序 for ($i = $h; $i < $len; $i++){ // 将a[i]插入到a[i-h],a[i-2*h],a[i-3*h]... 之中 (算法的要害 for ($j = $i; $j >= $h; $j -= $h){ if ($arr[$j] < $arr[$j-$h]){ $temp = $arr[$j]; $arr[$j] = $arr[$j-$h]; $arr[$j-$h] = $temp; } //print_r($arr);echo '
'; // 打开这行注释,可以看到每一步被替代的气象 } } $h = intval($h/$f); } return $arr; } $arr = array(14,9,1,6,-3,2,99,20,17,15,3); $shell = shell_sort($arr); echo '
';
print_r($shell);
/**
*
Array
(
[0] => -3
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 6
[6] => 9
[7] => 13
[8] => 14
[9] => 15
[10] => 17
[11] => 20
[12] => 99
)
)
*
*/

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

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

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

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

(编辑:湖南网)

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

    热点阅读