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

  

posted @ 2017-09-06 15:40  永杰本杰  阅读(277)  评论(0编辑  收藏  举报