箱排序(Bin Sort)的PHP实现,又称为Bucket sort桶排序
01 | function out_arr( $arr ) { |
02 | return implode( ', ' , $arr ).' |
03 | '; |
04 | } |
05 |
06 | function sort_bin( $arr ) { |
07 | $boxes = array (); |
08 | foreach ( $arr as $v ) { |
09 | $boxes [ $v ][] = $v ; |
10 | } |
11 | |
12 | $ret = array (); |
13 | $min = min( $arr ); |
14 | $max = max( $arr ); |
15 | for ( $i = $min ; $i <= $max ; $i ++ ) { |
16 | if ( isset( $boxes [ $i ]) ) { |
17 | $ret = array_merge ( $ret , $boxes [ $i ]); |
18 | } |
19 | } |
20 | return $ret ; |
21 | } |
22 |
23 | echo '<pre>' ; |
24 | $arr = range(1, 20); |
25 | shuffle( $arr ); |
26 | echo 'ORG : ' .out_arr( $arr ); |
27 | $arr = sort_bin( $arr ); |
28 | echo 'RET : ' .out_arr( $arr ); |
29 | echo '</pre>' ; |