选择排序Selection Sort的PHP实现,安全按照算法所写。
同一排序算法下,需要趟数最多的数列是什么数列呢?思考中。
每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。
01 function out_arr($arr) { 02 return implode(', ', $arr).' 03 '; 04 } 05 06 function sort_selection($arr) { 07 for ($i = 0; $i < count($arr) - 1; $i++ ) { 08 $min_index = $i; 09 for($j = $i+1; $j < count($arr); $j++ ) { 10 if( $arr[$j] < $arr[$min_index] ) { 11 $min_index = $j; 12 } 13 } 14 if( $min_index != $i ) { 15 $tmp = $arr[$min_index]; 16 $arr[$min_index] = $arr[$i]; 17 $arr[$i] = $tmp; 18 } 19 echo sprintf('=', $i).' : '.out_arr($arr); 20 } 21 } 22 23 24 25 26 echo '<pre>'; 27 $arr = range(20, 1); 28 shuffle($arr); 29 echo 'ORG : '.out_arr($arr); 30 sort_selection($arr); 31 echo '</pre>';