基本思想:在要排序的一组数中,选出最小的一个数(要遍历一下)与第一个位置的数交换;
然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。
提示:在查找最小元素时,一定要记录下标的位置
<?php
function select(&$arr)
{
for($i=0; $i<count($arr)-1; ++$i)
{
//假设下标为$i的元素就是最小的数
$min = $arr[$i];
$minIndex = $i;
//取得最小的元素及其下标
for($j=$i+1; $j<count($arr); ++$j)
{
if($min>$arr[$j])
{
$min = $arr[$j];
$minIndex = $j;
}
}
// 最后交换
$temp = $arr[$i];
$arr[$i] = $arr[$minIndex];
$arr[$minIndex] = $temp;
}
return $arr;
};
$arr = array(12,5,33,78,96,16,8,57,62);
$res = select($arr);
print_r($res);
结果:Array ( [0] => 5 [1] => 8 [2] => 12 [3] => 16 [4] => 33 [5] => 57 [6] => 62 [7] => 78 [8] => 96 )