簡單選擇排序,就是執行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 ?>
