基本思想:每一次比較都把下乙個數放到前面的適當位置,這樣需要把前面比該數大的值全部後移乙個位置。
在要排序的一組數中,假定前n-1個數已經排好序,現在將第n個數插到前面的有序數列中,使得這n個數也是排好順序的。如此反覆迴圈,直到全部排好順序。
**:
<?php
function
insertion_sort
($arr
)$arr_len
=count
($arr);
for($i=
1;$i<
$arr_len;$i
++)else
}$arr[$j
+1]=
$current
;// 把當前數插入到適當位置,注意,因為$j--操作導致多減了一次,加1補上
}return
$arr;}
$arr=[
2,13,
1,5,
99,234,23]
;$arr=[
3,34,
443,
123,2,
1,543,
534234,19
,234
,9434];
$arr
=insertion_sort
($arr);
print_r
($arr
);
輸出:
array
([0] => 1
[1] => 2
[2] => 3
[3] => 19
[4] => 34
[5] => 123
[6] => 234
[7] => 443
[8] => 543
[9] => 9434
[10] => 534234
)
php實現插入排序
它是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。其實這個我們並不陌生,舉乙個現實中的小例子,我們都打過撲克,拿到牌時,就需要對撲克進行抹順,一般都是按著左右是從小到大的順序,新來了一張牌,我們是不是一張一張的進行比較,找到它合適的位置,這就是插入排序。arr j...
PHP實現插入排序
插入排序思想 插入排序 insertion sort 的演算法描述是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上,通常採用in place排序 即只需用到o 1 的額外空間的排序 因而在從後向前掃瞄過程中,...
插入排序演算法實現
插入排序在眾多排序演算法中是一種穩定的排序方法,其平均與最差時間複雜度均為o n2 空間複雜度為o 1 主要思路 每一次排序都將待排序元素的元素,從已排序的元素的左邊 右邊 開始,依次往右邊 左邊 比較,滿足比較條件的話就交換元素的位置。原理很簡單,先看 include using namespac...