Php quick sorting algorithm (recursive sorting and iterative sorting) example
- /**
- * Quick sorting implemented by recursive method
- */
- Function quicksort ($ seq)
- {
- $ K = $ seq [0];
- $ X = array ();
- $ Y = array ();
- For ($ I = 1; $ I <$ _ size; $ I ++ ){
- If ($ seq [$ I] <= $ k ){
- $ X [] = $ seq [$ I];
- } Else {
- $ Y [] = $ seq [$ I];
- }
- }
- $ X = quicksort ($ x );
- $ Y = quicksort ($ y );
- Return array_merge ($ x, array ($ k), $ y );
- } Else {
- Return $ seq;
- }
- }
2. iteration method:
- /**
- * Fast sorting of iterative methods
- */
- Function quicksortx (& $ seq)
- {
- $ Stack = array ($ seq );
- $ Sort = array ();
- While ($ stack ){
- $ Arr = array_pop ($ stack );
- If (count ($ arr) <= 1 ){
- If (count ($ arr) = 1 ){
- $ Sort [] = & $ arr [0];
- }
- Continue;
- }
- $ K = $ arr [0];
- $ X = array ();
- $ Y = array ();
- $ _ Size = count ($ arr );
- For ($ I = 1; $ I <$ _ size; $ I ++ ){
- If ($ arr [$ I] <= $ k ){
- $ X [] = & $ arr [$ I];
- } Else {
- $ Y [] = & $ arr [$ I];
- }
- }
- ! Empty ($ y) & array_push ($ stack, $ y );
- Array_push ($ stack, array ($ arr [0]);
- ! Empty ($ x) & array_push ($ stack, $ x );
- }
- Return $ sort;
- }
Usage:
- /**
- * Generate a random array
- */
- For ($ I = 0; $ I <5; $ I ++ ){
- $ TestArr [] = mt_rand (0,100 );
- }
- Var_dump ($ testArr );
- Var_dump (quicksort ($ testArr ));
- Var_dump (quicksortx ($ testArr ));
|