PHP數據結構(3) 選擇排序機器時間複雜度

<?php
//選擇排序
  //選擇排序:不穩定,時間複雜度 O(n^2)
  //選擇排序的基本思想是對待排序的記錄序列進行n-1遍的處理,第i遍處理是將L[i..n]中最小者與//L[i]交換位     置。這樣,經過i遍處理之後,前i個記錄的位置已經是正確的了。
 
function selection_sort($array){
$count=count($array);//獲取數組長度

//外循環,控制比較的趟數
for($i=0;$i<$count;$i++){
$min=$array[$i];//假設第一個元素爲最小值
$min_index=$i;//獲取最小元素的下標


//內循環,控制比較的次數,找出該趟最小數和$j進行交換
for($j=$i;$j<$count;$j++){
if($array[$j]<$min){
//當找到比$min小的值時,進行交換
$min=$array[$j];
$min_index=$j;//記錄該趟找到的最小元素的下標
}
}


//將最小元素和該趟的第一個元素進行交換
if($min_index !=$i){
$temp=$array[$i];
$array[$i]=$array[$min_index];
$array[$min_index]=$temp;
}
}
return $array;
}


$arr=array(2,4,1,99,33,18,43);
$val=selection_sort($arr);
foreach($val as $key => $values){
echo "key:".$key."values:".$values."<br/>";
}

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