首页 > 代码库 > 希尔排序
希尔排序
希尔排序
希尔排序是一种比较稳定的排序算法
第一层 是步长的循环,是指数级
第二层 是第一层步长到最后元素的指针的循环。
第三层 是第二层减去步长为起始,有步长的类插入排序。
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);
类插入排序,不是真正的插入排序。
希尔排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。