排序之插入排序

風痕影默發表於2014-12-09

陣列元素個數:n

演算法思想:分為一組有序組和一組無序組,每次按順序從無序組中取一個與其前邊的比較,若小於前者交換,否則break;一直到比較完最後一個無序元素,剛開始有序組為陣列第一個元素,剩下的為無序的。

程式碼如下:

<?php
    $arr = array(232,3,44,234,456,3432,289);
    function insertSort(&$arr)
    {
        for($i=1; $i<count($arr); $i++)
        {
            for($j=$i; $j>0; $j--)
            {
                if($arr[$j]<$arr[$j-1])
                {
                    $temp = $arr[$j];
                    $arr[$j] = $arr[$j-1];
                    $arr[$j-1] = $temp;
                }
                else
                    break;
            }
        }

    }
    insertSort($arr);
    foreach ($arr as $key => $value) {
        echo " ".$value;
    }
?>

 

相關文章