插入排序:
将未排序的元素依次插入到排好序的队列里。(从后往前插)
<?php
class Solution {
function insertSort($arr){
$len = count($arr);
for($i = 0; $i < $len - 1; $i++){
if($arr[$i+1] < $arr[$i]){
$t = $arr[$i+1]; // 将最小的取出
for($j = $i+1; $j > 0; $j--){
if($t < $arr[$j-1]){ // 从后往前依次赋值
$arr[$j] = $arr[$j-1];
} else{
break;
}
}
$arr[$j] = $t; // 将最小的插入到当前位置
}
}
return $arr;
}
}
$ok = new Solution();
print_r($ok->insertSort([56, 78, 12, 46, 34, 64, 34, 15, 99, 64, 21]));
相同思想:借鉴别人
<?php
class Solution {
function mySort($arr){
$len = count($arr);
for($i = 1; $i < $len - 1; $i++){
$t = $arr[$i];
$j = $i-1;
while($j >= 0 && $t < $arr[$j]){
$arr[$j+1] = $arr[$j];
$j--;
}
$arr[$j+1] = $t;
}
return $arr;
}
}
$ok = new Solution();
print_r($ok->mySort([56, 78, 12, 46, 34, 64, 34, 15, 99, 64, 21]));
18万+

被折叠的 条评论
为什么被折叠?



