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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章