1 <?php
2
3 $arr=array(1,43,54,62,21,66,32,78,36,76,39);
4
5 function insertSort($arr) {
6 //i循环控制 每次需要插入的元素,一旦需要插入的元素控制好了,
7 //间接已经将数组分成了2部分,下标小于当前的(左边的),是排序好的序列
8 for($i=1, $len=count($arr); $i<$len; $i++) {
9 //获得当前需要比较的元素值。
10 $tmp = $arr[$i];
11
12 //内层循环控制 比较 并 插入
13 for($j=$i-1;$j>=0;$j--) {
14 //$arr[$i];//需要插入的元素; $arr[$j];//需要比较的元素
15 if($tmp < $arr[$j]) {
16 //发现插入的元素要小,交换位置
17 //将后边的元素与前面的元素互换
18 $arr[$j+1] = $arr[$j];
19
20 //将前面的数设置为 当前需要交换的数
21 $arr[$j] = $tmp;
22 } else {
23 //如果碰到不需要移动的元素
24 //由于是已经排序好是数组,则前面的就不需要再次比较了。
25 break;
26 }
27 }
28 }
29
30 //将这个元素 插入到已经排序好的序列内。
31 //返回
32 return $arr;
33 }
34
35 $arr = insertSort($arr);
36
37 echo "<pre>";
38 print_r($arr);
39
40
41
42
43 /*
44 Array
45 (
46 [0] => 1
47 [1] => 21
48 [2] => 32
49 [3] => 36
50 [4] => 39
51 [5] => 43
52 [6] => 54
53 [7] => 62
54 [8] => 66
55 [9] => 76
56 [10] => 78
57 )
58 */