算法原理:

    • 将第一个数与第二个数进行比较,如果第一个数>第二个数,两数互换位置。
    • 将第二个数与第三个数进行上述比较,以此类推,后续相邻的两个数依次进行比较。
    • 末位两个数进行比较后,得到的数便是该数列最大的数。
    • 重新上述比较,除去最后一个数。

    Java代码:

    1. package sort;
    2. public class BubbleSort {
    3. public int[] sort(int[] arr) {
    4. int length = arr.length;
    5. if (length <= 1) {
    6. return arr;
    7. }
    8. for (int i = 0; i < length - 1; i++) {
    9. for (int j = 0; j < length - i - 1; j++) {
    10. if (arr[j] > arr[j + 1]) {
    11. int tmp = arr[j];
    12. arr[j] = arr[j + 1];
    13. arr[j + 1] = tmp;
    14. }
    15. }
    16. }
    17. return arr;
    18. }
    19. }

    PHP代码:

    1. <?php
    2. class BubbleSort {
    3. public function sort($arr = []) {
    4. $count = count($arr);
    5. if ($count <= 1) {
    6. return $arr;
    7. }
    8. for ($i = 0; $i < $count - 1; $i++) {
    9. for ($j = 0; $j < $count - $i - 1; $j++) {
    10. if ($arr[$j] > $arr[$j + 1]) {
    11. $tmp = $arr[$j];
    12. $arr[$j] = $arr[$j + 1];
    13. $arr[$j + 1] = $tmp;
    14. }
    15. }
    16. }
    17. return $arr;
    18. }
    19. }