1 <?php
2 $arr = [2, 3, 1, 6, 4, 7, 5, 9];
3
4 var_dump(insertsort($arr));
5 function insertSort($arr) {
6 $len = count($arr);
7 for ($i = 1; $i < $len; $i++) {
8 // 当前值
9 $key = $arr[$i];
10 // 当前位置
11 $pos = $i;
12 // 如是当前位置 >0 && 当前值的前一个值 > 当前值 选出最值
13 while ($pos > 0 && $arr[$pos - 1] > $key) {
14 // 当前值 = 前一个值
15 $arr[$pos] = $arr[$pos - 1];
16 // 当前位置后移
17 $pos = $pos - 1;
18 }
19 // 找到当前值的位置
20 $arr[$pos] = $key;
21 }
22 return $arr;
23 }
请发表评论