首页 > 代码库 > 插入排序

插入排序

插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。 
插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序。

下图演示了对4个元素(4,3,1,2)进行直接插入排序的过程,共需要(a),(b),(c)三次插入。

技术分享

 

代码示例:

技术分享
 1 <?php
 2     //插入排序
 3     include "show.php";
 4     
 5     function insert_sort(&$data)
 6     {
 7         $length = count($data);
 8         //$length个数组元素,需要循环$length-1次
 9         for($i=1; $i<$length; ++$i)
10         {
11             $key = $data[$i];
12             $j = $i - 1;
13             while($j>=0 && $data[$j] > $key)
14             {
15                 $data[$j+1] = $data[$j];
16                 $j--;
17             }
18             $data[$j+1] = $key;
19         }
20     }
21     
22     $arr = array(8,3,9,34,1,3);
23     show($arr);//打印数组
24     insert_sort($arr);
25     show($arr);
View Code

运行结果:

技术分享

插入排序