插入排序算法: 将一组待排序的数,取出第一个数作为已经排序好的队列,每一趟排序都要把第2,3,4,5.。。个数插入已排序好的队列中。
例如 待排序队列 3,8,2,5,7,1,6,4
已排序好队列 3
第1趟 : 插入8
已排序好队列 3,8
第2趟: 插入2
已排序好队列 2,3,8
。
。
。
以此类推。
时间复杂度 : O(n^2) 是稳定的排序 。
$a = array(3,8,2,5,7,1,6,4); $b = array(3); for($i = 1 ; $i < count($a) ; $i++){ for($j = $i-1 ; $j >= 0 ; $j--){ if($b[$j] > $a[$i]){ $b[$j+1] = $b[$j]; $b[$j] = $a[$i]; }else{ $b[$j+1] = $a[$i]; break; } } } print_r($b);