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/>";
}

?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值