PHP數據結構(4) 直接插入排序

直接插入排序就是將一個待排序的元素按照大小順序插入到一個已經排序好的數組中,假設一個有N個元素的無序數組,將進行N-1次的插入既能完成排序。

例如一個有5個元素的無序數組,其將進行4次插入排序,如:$array(15,7,43,22,18)

第一次::$array(15)   將元素7插入該數組,排序後: $array(7,15)

        第二次:$array(7,15)  將元素43插入該數組,排序後:$array(7,15,43)

第三次:$array(7,15,43)  將元素22插入該數組,排序後:$array(7,15,22,43)

第四次:$array(7,15,22,41)  將元素18插入該數組,排序後:$array(7,.15,18,22,43),完成排序。


代碼實現如下:

<pre name="code" class="php"><span style="font-size:18px;"><?php
	function insert_sort($array){

		$count=count($array);
		for($i=1;$i<$count;$i++){
			if($array[$i-1]>$array[$i]){
				$temp=$array[$i];
				$j=$i;
				while($j>0 && $array[$j-1]>$temp){
					$array[$j]=$array[$j-1];
					$j--;
				}
				$array[$j]=$temp;
			}

		}
		return $array;
	}


	$arr=array(4,1,17,9,88,37,43);
	$res=insert_sort($arr);
	foreach($res as $key => $values){
		echo "key:".($key+1)." value:".$values."<br/>";
	}
?>




發佈了32 篇原創文章 · 獲贊 6 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章