PHP Merge Sort Example

Write a PHP program that sorts an array of positive integers using the Merge Sort Algorithm.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
<?php function merge_sort($T4Tutorials_array){ if(count($T4Tutorials_array) == 1 ) return $T4Tutorials_array; $mid = count($T4Tutorials_array) / 2; $left_Side = array_slice($T4Tutorials_array, 0, $mid); $right_Side = array_slice($T4Tutorials_array, $mid); $left_Side = merge_sort($left_Side); $right_Side = merge_sort($right_Side); return merge($left_Side, $right_Side); } function merge($left_Side, $right_Side){ $res = array(); while (count($left_Side) > 0 && count($right_Side) > 0){ if($left_Side[0] > $right_Side[0]){ $res[] = $right_Side[0]; $right_Side = array_slice($right_Side , 1); }else{ $res[] = $left_Side[0]; $left_Side = array_slice($left_Side, 1); } } while (count($left_Side) > 0){ $res[] = $left_Side[0]; $left_Side = array_slice($left_Side, 1); } while (count($right_Side) > 0){ $res[] = $right_Side[0]; $right_Side = array_slice($right_Side, 1); } return $res; } $Final_array = array(7, 3, 9, 21, 51, 0, 2); echo "Original Array : "; echo implode(', ',$Final_array ); echo "\nSorted Array :"; echo implode(', ',merge_sort($Final_array))."\n"; ?> |
Output
Original Array : 7, 3, 9, 21, 51, 0, 2 Sorted Array :0, 2, 3, 7, 9, 21, 51