插入排序详细代码

浏览:1471 发布日期:2019/05/01 分类:基础算法 关键字: 插入排序 面试题 怎么排序 排序 算法优化 算法
插入排序详细代码
GitHub地址 https://github.com/Tim-AutumnWind/Commonly/**
 * 插入排序  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;
}
评论( 相关
后面还有条评论,点击查看>>