美文网首页
JS经典算法之一!冒泡排序

JS经典算法之一!冒泡排序

作者: 拾柒_aab0 | 来源:发表于2019-10-27 22:45 被阅读0次

冒泡排序(Bubble Sort),是一种[计算机科学领域的较简单的排序算法。

它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。

这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
图解:


20190913114606953.png

1:冒泡算法的原理:冒泡算法把数组中的每个值从前向后进行比较,每次循环会将当前数值与后一个数值进行比较,如果符合条件, 会进行数值互换,多次循环以此来达到重新排序的目的。
2:冒泡算法的代码构成和每一步所代表的意义:

 function funct(arrr){
            for(var i = 0;i < arrr.length; i++){
                for(var j = 0; j < arrr.length -1 -i;j++){
                    if(arrr[j] < arrr[j+1]){
                        var num = arrr[j]
                        arrr[j] = arrr[j+1]
                        arrr[j+1] = num
                    }
                }
            }
            return arrr
        }

首先需要一个for循环来循环数组中的每一项数值,之后再嵌套一个for循环 用来比较数组中的数值,并进行重新赋值并排序。这里有一个难点,就是j < arrr.length - 1,之所以小于arrr.lrngth-1 是因为比较大小时需要与后一项比较,如果j < length的话 这个循环的最后一项的返回值会返回undefind,这会改变原数组的内容,所以需要-1。 之后是if判断来比较前后数值的大小,这个地方是这个算法最难理解的地方。 if(arrr[j] < arrr[j+1]){ 这里会判断 数组[j]下标所对应值是否小于下一个数值 var num = arrr[j] 如果通过判断,则声明一个名抓取较小的一项的数值 arrr[j] = arrr[j+1] 将较小数值所对应的下标位置重新赋值为较大的数值 arrr[j+1] = num 将较大数值所对应的下标位置重新赋值为之前声明抓取的较小数值以此来实现位置互换 每一次i循环后都会确定一个数组中最小值放在数组的最后 所以 j < length -1 再减去i,以此来减少函数所占用的内存和计算时间。

相关文章

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

  • 前端算法学习-第一篇

    冒泡排序算法 冒泡排序算法是最慢的排序算法之一,也是最容易实现的排序算法。之所以叫冒泡排序是因为使用这种算法排序时...

  • JS经典算法之一!冒泡排序

    冒泡排序(Bubble Sort),是一种[计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次...

  • 1.1-交换排序-冒泡

    参考链接 交换排序:冒泡排序(Bubble Sort) 白话经典算法系列之一 冒泡排序的三种实现 基本思想 以从小...

  • Java语言——数组排序算法

    数组有很多常用的算法,包括冒泡排序、直接选择排序和反转排序。 一、冒泡排序 冒泡排序是最常用的数组排序算法之一,它...

  • 前端常见的排序算法算法

    冒泡排序 我们先来了解一下冒泡排序算法,它是最慢的排序算法之一,但也是一种最容易实现的排序算法。之所以叫冒泡排序是...

  • 用 Python 实现十大经典排序算法

    今天,详细的跟大家分享下 10 种经典排序算法。 10种经典排序算法包括冒泡排序、选择排序、快速排序、归并排序、堆...

  • 算法-冒泡排序

    算 法:冒泡排序算法时间复杂度: 冒泡排序算法概述 冒泡排序伪代码 冒泡排序实现 冒泡排序算法概述 冒泡排...

  • 十大经典排序算法&七大查找算法

    十大经典排序算法: 十大经典排序算法的时间、空间复杂度: 冒泡排序(Bubble Sort) 算法描述: 1、比较...

  • 排序算法1:交换排序

    一、冒泡排序 谈到排序算法,首先映入脑中的便是冒泡排序,这也是我接触的第一种排序算法,的确算是一个比较经典的算法。...

网友评论

      本文标题:JS经典算法之一!冒泡排序

      本文链接:https://www.haomeiwen.com/subject/yeomvctx.html