希尔排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了希尔排序相关的知识,希望对你有一定的参考价值。
希尔排序
希尔排序是一种比较稳定的排序算法
第一层 是步长的循环,是指数级
第二层 是第一层步长到最后元素的指针的循环。
第三层 是第二层减去步长为起始,有步长的类插入排序。
function shell_sort(&$arr) { if(!is_array($arr))return; $n=count($arr); $sum = 0; for($gap=floor($n/2);$gap>0;$gap=floor($gap/=2)) { for($i=$gap;$i<$n;++$i) { for($j=$i-$gap;$j>=0&&$arr[$j+$gap]<$arr[$j];$j-=$gap) { $temp=$arr[$j]; $arr[$j]=$arr[$j+$gap]; $arr[$j+$gap]=$temp; } } } } $arr = [6,5,4,3,2,1]; shell_sort($arr); var_dump($arr);
类插入排序,不是真正的插入排序。
以上是关于希尔排序的主要内容,如果未能解决你的问题,请参考以下文章