1. 程式人生 > >排序算法-插入排序

排序算法-插入排序

++ 有序 有一個 元素 https 插入元素 AI target 完成

有一個已經有序的數據序列,要求在這個已經排好的數據序列中插入一個數,但要求插入後此數據序列仍然有序,這個時候就要用到一種新的排序方法——插入排序法,插入排序的基本操作就是將一個數據插入到已經排好序的有序數據中,從而得到一個新的、個數加一的有序數據,算法適用於少量數據的排序,時間復雜度為O(n^2)。是穩定的排序方法。插入算法把要排序的數組分成兩部分:第一部分包含了這個數組的所有元素,但將最後一個元素除外(讓數組多一個空間才有插入的位置),而第二部分就只包含這一個元素(即待插入元素)。在第一部分排序完成後,再將這個最後元素插入到已排好序的第一部分中。



function insertSort(&$arr){

$num=count($arr);

for ($i=1;$i<$num;$i++){

$insert_value=$arr[$i]; //給定排序的基準值
$compire_index=$i-1; //上一個的序號

while($arr[$compire_index]>$insert_value && $insert_value >= 0){ //如果前地基準值小於上一個元素的話,就把上一個元素的值放到當前的位置,然後基準值接著去前面就行比較

$arr[$compire_index+1]=$arr[$compire_index]; //元素的後移

--$compire_index; //比較的元素前移
}

$arr[$compire_index+1]=$insert_value; //如過上面的條件沒有滿足的,就把當前換成基準值
}

}


排序算法-插入排序