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;
} 