在線運行PHP http://www.compileonline.com/execute_php_online.php
1 <?php 2 function swap( &$a, &$b ) 3 { 4 $c = $a; 5 $a = $b; 6 $b = $c; 7 } 8 9 /** 10 * quick sort 11 * ascend 12 * in-place 13 */ 14 function quick_sort( &$a ) 15 { 16 $s = count( $a ); // size of a 17 if ( $s < 2 ) return; 18 $i = 0; // index of pivot, for tracking pivot 19 $pivot = $a[$i]; 20 $l = 0; // swap listener, if listens no swap, sort fini 21 22 // swap those smaller than pivot to the left 23 for ( $m = 0; $m < $s; $m++ ) 24 { 25 if ( $a[$m] < $a[$i] ) 26 { 27 swap( $a[$m], $a[$i] ); 28 $i = $m; 29 $l++; 30 } 31 } 32 33 // swap those larger than pivot to the right 34 for ( $n = 0; $n < $i; $n++) 35 { 36 if ( $a[$n] > $a[$i] ) 37 { 38 swap( $a[$n], $a[$i] ); 39 $i = $n; 40 $l++; 41 } 42 } 43 44 if ( $l == 0 ) return; 45 else $l = 0; 46 quick_sort( $a ); 47 } 48 49 $arr = range( 9, 0 ); 50 quick_sort( $arr ); 51 echo implode( ', ', $arr ); 52 ?>