一:普通选择排序
<?php
/**
* php选择排序
* author:Li_Fengxiao
* blog:csdn
* 比较负杂度:O(n^2)
* 交换复杂度:O(n)
*/
$arr = [5,4,1,9,2,6,3,8,7];
function selectSort($arr)
{
//数组长度
$arr_length = count($arr);
for($i = 0; $i < $arr_length - 1; $i++)
{
$tempKey = $i;
$tempValue = $arr[$i];
for($j = $i + 1; $j < $arr_length; $j ++)
{
//判断后面的值是否比当前的值小 true:值换为后面的值 位置记录后面的下标
if($arr[$j] < $tempValue)
{
$tempValue = $arr[$j];
$tempKey = $j;
}
}
//将值填充到相应位置
$arr[$tempKey] = $arr[$i];
//将当前值换为最新值
$arr[$i] = $tempValue;
}
return $arr;
}
?>
结果:
二:优化策略:待续