/**
* 选择排序算法
*
* 选出最小的一个数字与第一个位置数字交换,之后再剩余的数当中再次找到最小的数字与第二个位置交换,
* 依此循环到倒数第二个数字和最后一个数字比较结束为止。
*
* @param array $arr
* @return $arr
*/
function selectSort($arr = array())
{
if(!is_array($arr) || empty($arr))
{
return $arr;
}
$len = count($arr);
for($i=0; $i<$len-1; $i++) {
//假设最小值的位置
$p = $i;
for($j=$i+1; $j<$len; $j++) {
//$arr[$p] 已知的最小值
if($arr[$p] > $arr[$j]) {
//比较发现更小的记录下最小值的位置,并且在下次比较时采用已知的最小值进行比较。
$p = $j;
}
}
//确定当前最小值的位置,保存到$p中。如果发现最小值的位置与当前假设的位置$i不同,则位置互换即可。
if($p != $i) {
$tmp = $arr[$p];
$arr[$p] = $arr[$i];
$arr[$i] = $tmp;
}
}
return $arr;
}
php 选择排序算法
最新推荐文章于 2021-09-24 22:03:50 发布