首页 > 编程语言 > 详细

排序算法-希尔排序

时间:2019-02-17 16:05:26      阅读:285      评论:0      收藏:0      [点我收藏+]

思路: 先将整个待排元素序列切割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序
复杂度: O(n3/2)

function shellSort($num){                          
    $n = count($num);                              
    while($n >= 1){                                
        for($i = 1; $i < $n; $i++){                
            $j = $i - 1;                           
            $temp = $num[$i];                      
            while($j >= 0 && $temp < $num[$j]){    
                $num[$j + 1] = $num[$j];           
                $j--;                              
            }                                      
            $num[$j + 1] = $temp;                  
        }                                          
        $n = intval($n / 2);                       
    }                                              
    return $num;                                   
}

排序算法-希尔排序

原文:https://www.cnblogs.com/onlycat/p/10391459.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!