PHP内功之排序__1.冒泡排序

冒泡排序

好记性,不如烂笔头
1.代码

  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: suntoo-ssd-02
  5. * Date: 2018/10/9
  6. * Time: 14:35
  7. * 冒泡排序
  8. * 思路: 像冒泡一样,每次冲数组中 冒出一个最大的数出来
  9. * 白话: 有10个不同大小的气泡,从底至上将较小的气泡向上升,一直循环到10个气泡大小有序
  10. * 重点: 在冒泡排序中,最重要的思想是两两比较,将两者较小的升上去
  11. */
  12. function BubbleSort(array $container)
  13. {
  14. //获取数组的总长度
  15. $count = count($container);
  16. if ($count > 1) {
  17. //开始循环(外循环)
  18. for ($i = 0; $i < $count; $i++) {
  19. //再次循环(内循环)
  20. for ($j = 0; $j < $count - ($i + 1); $j++) {
  21. //如果内循环中的第一个大于第二个数 则将 他们的位置对调
  22. if ($container[$j] > $container[$j + 1]) {
  23. $temp = $container[$j];
  24. $container[$j] = $container[$j + 1];
  25. $container[$j + 1] = $temp;
  26. }
  27. }
  28. }
  29. return $container;
  30. }
  31. }
  32. //测试
  33. echo "<pre>";
  34. var_dump(BubbleSort([4, 21, 41, 2, 53, 1, 213, 31, 21, 423]));

运行过程

  1. ---外循环---第 1
  2. - - - 内循环 - - - 1
  3. - - - 内循环 - - - 2
  4. - - - 内循环 - - - 3
  5. - - - 内循环 - - - 4
  6. - - - 内循环 - - - 5
  7. - - - 内循环 - - - 6
  8. - - - 内循环 - - - 7
  9. - - - 内循环 - - - 8
  10. - - - 内循环 - - - 9
  11. ---外循环---第 2
  12. - - - 内循环 - - - 1
  13. - - - 内循环 - - - 2
  14. - - - 内循环 - - - 3
  15. - - - 内循环 - - - 4
  16. - - - 内循环 - - - 5
  17. - - - 内循环 - - - 6
  18. - - - 内循环 - - - 7
  19. - - - 内循环 - - - 8
  20. ---外循环---第 3
  21. - - - 内循环 - - - 1
  22. - - - 内循环 - - - 2
  23. - - - 内循环 - - - 3
  24. - - - 内循环 - - - 4
  25. - - - 内循环 - - - 5
  26. - - - 内循环 - - - 6
  27. - - - 内循环 - - - 7
  28. ---外循环---第 4
  29. - - - 内循环 - - - 1
  30. - - - 内循环 - - - 2
  31. - - - 内循环 - - - 3
  32. - - - 内循环 - - - 4
  33. - - - 内循环 - - - 5
  34. - - - 内循环 - - - 6
  35. ---外循环---第 5
  36. - - - 内循环 - - - 1
  37. - - - 内循环 - - - 2
  38. - - - 内循环 - - - 3
  39. - - - 内循环 - - - 4
  40. - - - 内循环 - - - 5
  41. ---外循环---第 6
  42. - - - 内循环 - - - 1
  43. - - - 内循环 - - - 2
  44. - - - 内循环 - - - 3
  45. - - - 内循环 - - - 4
  46. ---外循环---第 7
  47. - - - 内循环 - - - 1
  48. - - - 内循环 - - - 2
  49. - - - 内循环 - - - 3
  50. ---外循环---第 8
  51. - - - 内循环 - - - 1
  52. - - - 内循环 - - - 2
  53. ---外循环---第 9
  54. - - - 内循环 - - - 1


评论 0

发表评论

Top