基本思想:在要排序的一组数中,选出最小的一个数(要遍历一下)与第一个位置的数交换;
然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。
提示:在查找最小元素时,一定要记录下标的位置
<?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 )