快速排序(Quicksort)的PHP实现。
01 | function out_arr( $arr ) { |
02 | return implode( ', ' , $arr ).' |
03 | '; |
04 | } |
05 |
06 | function sort_quick( $arr ) { |
07 | if ( count ( $arr ) > 1 ) { |
08 | $key = $arr [0]; |
09 | $min = array (); |
10 | $max = array (); |
11 | for ( $i = 1; $i < count ( $arr ); $i ++) { |
12 | if ( $arr [ $i ] > $key ) { |
13 | $max [] = $arr [ $i ]; |
14 | } else { |
15 | $min [] = $arr [ $i ]; |
16 | } |
17 | } |
18 | $min = count ( $min ) > 0 ? sort_quick( $min ) : $min ; |
19 | $max = count ( $max ) > 0 ? sort_quick( $max ) : $max ; |
20 | return array_merge ( $min , array ( $key ), $max ); |
21 | } else { |
22 | return $arr ; |
23 | } |
24 | } |
25 |
26 | echo '<pre>' ; |
27 | $arr = range(1, 20); |
28 | shuffle( $arr ); |
29 | echo 'ORG : ' .out_arr( $arr ); |
30 | $ret = sort_quick( $arr ); |
31 | echo 'RET : ' .out_arr( $ret ); |
32 | echo '</pre>' ; |