选择排序的php实现 Selection Sort

选择排序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>';

你可能感兴趣的:(选择排序的php实现 Selection Sort)