当前位置:首页 > C/C++ > 正文内容

冒泡排序算法

mxdyeah4个月前 (01-22)C/C++640

冒泡排序核心思想

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

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

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

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;
}


版权声明:本文由mxd's Blog发布,如需转载请注明出处。

如果文章中有风险行为,文章作者不负任何责任。


本文链接:https://blog.mxdyeah.top/mxdyeah_blog_post/36.html

“冒泡排序算法” 的相关文章

插入排序算法

插入排序算法

插入排序基本思想插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入。示例代码1.C++for(int i=2;i<=n;i++)//从第二个数开始排...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。