选择排序的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>';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值