简单选择排序,就是执行n-i次比较,然后从n-i+1个数据中选择最小的值,如果最小值不是第i(1=<i<=n)个,则和第i个交换。
1 <?php 2 $arr = array(9,5,4,8,7,6,0,3,2,1); 3 4 /** 5 * 返回经过简单选择排序算法排序后的数组 6 * @param $array array 要进行排序的数组 7 * return array 进过排序后的数组 8 */ 9 function SelectSort($array){ 10 11 for($i=0;$i<count($array);$i++){ 12 13 $min = $i; //设置当前下标为最小值下标 14 for($j=$i;$j<count($array);$j++){ //经过n-i次关键字比较 15 16 if($array[$min] > $array[$j]){ 17 $min = $j; //如果后续的值比当前值小,则把后续值的键赋给$min; 18 } 19 } 20 21 if($min != $i){ //判断$min的值是否更改,若更改,则交换 22 23 $temp = $array[$min]; 24 $array[$min] = $array[$i]; 25 $array[$i] = $temp; 26 } 27 } 28 return $array; 29 } 30 31 $result = SelectSort($arr); 32 echo '<pre>'; 33 print_r($result); 34 ?>