原理: 循环数组,每次取出最值的index下标,并存放至队首。
function select_sort($array) {
$length = count($array);
for ($i=0; $i<$length; $i++) {
//找出最小值
$min = $i;
echo '循环开始值-->'.$array[$min];
for ($j=$i+1; $j<$length-1; $j++) {
if ($array[$min] > $array[$j]) {
$min = $j;
}
}
echo ' <||> 本次循环最小值-->'.$array[$min].'<br>';
if ($min != $i) {
$temp = $array[$min];
$array[$min] = $array[$i];
$array[$i] = $temp;
}
}
return $array;
}
$cc = select_sort(array(4,3,5,2,1,6));
echo '<pre>';
print_r($cc);
//输出
循环开始值-->4 <||> 本次循环最小值-->1
循环开始值-->3 <||> 本次循环最小值-->2
循环开始值-->5 <||> 本次循环最小值-->3
循环开始值-->5 <||> 本次循环最小值-->4
循环开始值-->5 <||> 本次循环最小值-->5
循环开始值-->6 <||> 本次循环最小值-->6
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
)