fork(1) download
  1. <?php
  2.  
  3. // your code goes here
  4.  
  5. $arr = array(2,3,4,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12);
  6. $arr2 =array(2,2,3,3,4,4,5,5,6,7,8,9,10,11,12);
  7. function sortIt($arr) {
  8. $sortedArray = array();
  9. $sortedArrays = array();
  10.  
  11. while (count($arr)) {
  12. $mini = min($arr);
  13. $sortedArray = array();
  14. while (array_search($mini, $arr) !== false) {
  15. $pos = array_search($mini, $arr);
  16. array_push($sortedArray, $arr[$pos]);
  17. array_splice($arr, $pos, 1);
  18. $mini++;
  19. }
  20. array_push($sortedArrays, $sortedArray);
  21. }
  22.  
  23. $changed = true;
  24. while ($changed) {
  25. $changed = false;
  26. for ($i = 0; $i < count($sortedArrays) - 1; $i++) {
  27. if ($sortedArrays[$i][0] > $sortedArrays[$i + 1][0]) {
  28. $temp = $sortedArrays[$i];
  29. $sortedArrays[$i] = $sortedArrays[$i + 1];
  30. $sortedArrays[$i + 1] = $temp;
  31. $changed = true;
  32. }
  33. }
  34. }
  35.  
  36. $changed = true;
  37. while ($changed) {
  38. $changed = false;
  39. for ($i = 0; $i < count($sortedArrays) - 1; $i++) {
  40. if (end($sortedArrays[$i]) > end($sortedArrays[$i + 1])) {
  41. $temp = $sortedArrays[$i];
  42. $sortedArrays[$i] = $sortedArrays[$i + 1];
  43. $sortedArrays[$i + 1] = $temp;
  44. $changed = true;
  45. }
  46. }
  47. }
  48. $newArr = array();
  49. for ($i = 0; $i < count($sortedArrays); $i++) {
  50. $newArr = array_merge ($newArr, $sortedArrays[$i]);
  51. }
  52. return $newArr;
  53. }
  54. echo json_encode(sortIt($arr));
  55. echo "\n";
  56. echo json_encode(sortIt($arr2));
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
[2,3,4,5,6,7,8,9,10,11,12,6,7,8,9,10,11,12]
[2,3,4,5,2,3,4,5,6,7,8,9,10,11,12]