fork(2) download
  1. <?php
  2.  
  3. function arrayGen() {
  4. $array = [];
  5. for ($i=0; $i<=20; $i++) {
  6. $array[$i] = mt_rand(10,99);
  7. }
  8. return $array;
  9. }
  10.  
  11. function arrayShow($array) {
  12. echo implode($array, ", ") . ".\n";
  13. }
  14.  
  15.  
  16. function bubbleSorting($array) {
  17. $startTime = microtime();
  18. for ($i=0; $i<count($array)-1; $i++) {
  19. for ($j=0; $j < count($array)-1; $j++) {
  20. if ($array[$j] > $array[$j+1]) {
  21. $a = $array[$j];
  22. $array[$j] = $array[$j+1];
  23. $array[$j+1] = $a;
  24. }
  25. }
  26. }
  27. $time = microtime() - $startTime;
  28. echo "Сортировка пузырьком выполненна за $time.\n";
  29. return $array;
  30. }
  31.  
  32. function newBubbleSorting($array) {
  33. $startTime = microtime();
  34. $sorted = FALSE;
  35. while ($sorted == FALSE) {
  36. $flag = 0;
  37. for ($i=0; $i < count($array)-1; $i++) {
  38. if ($array[$i] > $array[$i+1]) {
  39. $a = $array[$i];
  40. $array[$i] = $array[$i+1];
  41. $array[$i+1] = $a;
  42. $flag++;
  43. }
  44. }
  45. if ($flag == 0) {
  46. $sorted = TRUE;
  47. }
  48. }
  49. $time = microtime() - $startTime;
  50. echo "Сортировка пузырьком 2.0 выполненна за $time.\n";
  51. return $array;
  52. }
  53.  
  54. $a = arrayGen();
  55.  
  56. echo "Сгенерированный массив: ";
  57. arrayShow($a);
  58.  
  59. $b = bubbleSorting($a);
  60. echo "Сортировка пузырьком: ";
  61. arrayShow($b);
  62.  
  63. $c = newBubbleSorting($a);
  64. echo "пузырек 2.0: ";
  65. arrayShow ($c);
  66.  
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
Сгенерированный массив: 53, 10, 12, 47, 28, 78, 55, 45, 20, 37, 94, 22, 24, 67, 81, 57, 50, 67, 11, 27, 69.
Сортировка пузырьком выполненна за 0.00026500000000002.
Сортировка пузырьком: 10, 11, 12, 20, 22, 24, 27, 28, 37, 45, 47, 50, 53, 55, 57, 67, 67, 69, 78, 81, 94.
Сортировка пузырьком 2.0 выполненна за 0.00020599999999998.
пузырек 2.0: 10, 11, 12, 20, 22, 24, 27, 28, 37, 45, 47, 50, 53, 55, 57, 67, 67, 69, 78, 81, 94.