博主头像
mxd's Blog

"The quieter you become,the more you are able to hear."

冒泡排序算法

冒泡排序核心思想

冒泡排序就是把逆序的元素进行交换,每次都是相邻的两个元素比较,交换也发生在这两个元素之间。

所以,如果两个元素相等,是不会再交换的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,

所以冒泡排序是一种稳定排序算法。

bubbleSort.gif
bubbleSort.gif

冒泡排序样例代码

1.C++

void bubbleSort(int *a, int n) {
    for (int i = 0; i < n - 1; i++) {
        bool flag = false;
        for (int j = 0; j < n - 1 - i; j++) {
            if (a[j] > a[j + 1]) {
                std::swap(a[j], a[j + 1]);
                flag = true;
            }
        }
        if (flag == false) break;
    }
}

2.PHP

function bubbleSort($arr)
{
    $len = count($arr);
    for ($i = 0; $i < $len - 1; $i++) {
        for ($j = 0; $j < $len - 1 - $i; $j++) {
            if ($arr[$j] > $arr[$j+1]) {
                $tmp = $arr[$j];
                $arr[$j] = $arr[$j+1];
                $arr[$j+1] = $tmp;
            }
        }
    }
    return $arr;
}

3.JavaScript

function bubbleSort(arr) {
    var len = arr.length;
    for (var i = 0; i < len - 1; i++) {
        for (var j = 0; j < len - 1 - i; j++) {
            if (arr[j] > arr[j+1]) {        // 相邻元素两两对比
                var temp = arr[j+1];        // 元素交换
                arr[j+1] = arr[j];
                arr[j] = temp;
            }
        }
    }
    return arr;
}


冒泡排序算法
https://blog.mxdyeah.top/mxdyeah_blog_post/36.html
本文作者 mxdyeah
发布时间 2024-01-22
许可协议 CC BY-NC-SA 4.0
发表新评论