立诚勿怠,格物致知
It's all about connecting the dots

冒泡排序

根据维基百科:

冒泡排序又称为泡式排序,是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

冒泡排序的算法稳定性:稳定排序算法。

时间复杂度:O(n^2)。

冒泡排序的思想是,比较相邻两个数,如果前者大于后者,就把两个数的位置相互交换;如此这般,第一轮就可以选出一个最大的数放在最后面;经过n-1轮就可以完成所有数的排序。

function bubbleSort (arr) {
    var len = arr.length
    while (len > 0) {
        for (var i = 0; i < len - 1; i++) {
            if (arr[i] > arr[i + 1]) {
                var temp = arr[i]
                arr[i] = arr[i + 1]
                arr[i + 1] = temp
            }
        }
        len--
    }
    return arr
}

或者:

function bubleSort (arr) {
    const len = arr.length
    let tempVal
    for (let i = len; i > 0; i--) {
        for (let j = 0; j < i; j++) {
            if (arr[j] > arr[j + 1]) {
                tempVal = arr[j]
                arr[j] = arr[j+1]
                arr[j+1] = tempVal
            }
        }
    }
}

假定数组长度为n,可以看到,一共会执行n(n-1) + (n-1)(n-2) + … + (2)*(1)次循环。

赞(0) 打赏
文章名称:《冒泡排序》
文章链接:https://www.orzzone.com/bubble-sort.html
商业联系:yakima.public@gmail.com

本站大部分文章为原创或编译而来,对于本站版权文章,未经许可不得用于商业目的,非商业性转载请以链接形式标注原文出处。
本站内容仅供个人学习交流,不做为任何投资、建议的参考依据,因此产生的问题需自行承担。

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力提供更多优质内容!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册