1 插入排序簡介
概括:
- 插入排序(Insertion-Sort)的演算法描述是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃描,找到相應位置並插入。
小夥伴們仔細看下面的動態圖哦~
完整程式碼塊:
public static function insert($arr){
$size = count($arr);
for ($i=0; $i <$size-1 ; $i++) {
for ($j=$i+1; $j >0 ; $j--) {
if($arr[$j]<$arr[$j-1]){
$tmp=$arr[$j];
$arr[$j]=$arr[$j-1];
$arr[$j-1]=$tmp;
}
}
}
return $arr;
}
2 分析程式碼塊 具體分析到程式碼註釋哦 ~
插入排序
public static function insert($arr){
$size = count($arr);//先計算出陣列的大小
for ($i=0; $i <$size-1 ; $i++) {//外部迴圈 有多少陣列 就迴圈多少次
for ($j=$i+1; $j >0 ; $j--) {//內部迴圈 遞減 記住為什麼要遞減
if($arr[$j]<$arr[$j-1]){//如果當前的值 小於上一個值 為什麼要比較上一個值 為了在已排序序列中從後向前掃描
$tmp=$arr[$j];//定義當前值的臨時變數
$arr[$j]=$arr[$j-1];//替換當前值為上一個值
$arr[$j-1]=$tmp;//上一個值替換為當前的值的臨時變數
}
}
}
return $arr;//返回排序好的值
}
// print_r(Sort::insert($arr));