插入排序详细代码

浏览:951 发布日期:2019/05/01 分类:基础算法 关键字: 插入排序 面试题 怎么排序 排序 算法优化 算法
插入排序详细代码
/**
 * 插入排序  while 循环 :1000 / 134.ms  --- 10000 / 12961.ms
 * 插入排序    for 循环 :1000 / 143.ms  --- 10000 / 14254.ms
 * @param $sort
 * @param $n
 * @return mixed
 */
function get_lnsertion_sort($sort,$n = ''){
    $n = $n ?? count($sort);
    $i = 1;
    while($i < $n){
        $j = $i;
        while ($j > 0 && $sort[$j - 1] > $sort[$j]){
            $val        =   $sort[$j];
            $sort[$j]   =   $sort[$j -1];
            $sort[$j - 1]   =   $val;
            $j--;
        }
        $i++;
    }
    return $sort;
}
/**
 * 插入排序改进版  while 循环 :1000 / 76.ms  --- 10000 / 7388.ms
 * @param $sort
 * @param $n
 * @return mixed
 */
function get_lnsertion_better_sort($sort,$n = ''){
    $n = $n ?? count($sort);
    $i = 1;
    while($i < $n){
        $e  =   $sort[$i];
        $j  =   $i;
        while($j > 0 && $sort[$j - 1] > $e){
            $sort[$j]   =   $sort[$j - 1];
            $j--;
        }
        $sort[$j] = $e;
        $i++;
    }
    return $sort;
}
评论( 相关
后面还有条评论,点击查看>>
快乐赛车投注 幸运飞艇官网 上海时时乐开奖 快乐赛车官网 极速快3 极速快乐8 疯狂斗牛 易中彩票注册 极速快乐8 欢乐生肖