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措施计划有所辅佐。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读