网站地图

插入排序算法

创建时间:2013-11-11 22:20:02最后修改:2013-11-11 22:20:02

插入排序算法是在一个已经有序的数据序列中插入一个数,并且插入该数后数据序列仍然有序。插入排序算法适用于少量数据的排序,其时间复杂度为O(n^2),是一种稳定的排序算法。

基本思想:
插入算法的基本思想是将n个元素的数列分为已有序和无序两个部分,每次处理就是将无序数列的第一个元素与有序数列的元素从后往前逐个进行比较,找出插入位置,将该元素插入到有序数列的合适位置中。

例子:
用PHP实现插入排序算法:

<?php
$arr=array();
/ 生成一个随机无序的数组
for($i=0; $i<100; $i++)
{
    $arr[$i]=rand(0,100);
}

$count = count($arr);
for($i = 1; $i < $count; $i++)
{
    $temp = $arr[$i];
    for($j = $i -1; $j >= 0; $j--)
    {
        if($arr[$j] > $temp)
        {
            $arr[$j+1] = $arr[$j];
            $arr[$j] = $temp;
        }
        echo join(", ", $arr), "\n";
    }
    echo "\n";
}

print_r($arr);

<<上一篇:空间复杂度 目录