美文网首页
算法--冒泡排序(1)

算法--冒泡排序(1)

作者: 小囧兔 | 来源:发表于2018-02-22 11:59 被阅读0次

首先排序分为四种:

  交换排序: 包括冒泡排序,快速排序。

  选择排序: 包括直接选择排序,堆排序。

  插入排序: 包括直接插入排序,希尔排序。

  合并排序: 合并排序。

一、冒泡排序

冒泡排序就像是抓一堆东西扔水里,重的沉在底部,轻的依次往上浮。


image.png

经过几次比较得到如下的结果:


image.png
外层循环表示的是要比较的次数,i=0;第一次比较,里层循环比较2和4,2比4小,不交换,4和5比较,4比5小,不交换,5和1比,交换,5和9比,5比9小,不交换,
上面的图只是第一次比较,也就是外层循环第一次循环的时候得到的结果是[2,4,1,5,9];

因为第一次循环的时候已经把最大的数沉在底部了,所以,外层第二次循环的时候,没有必要去比较数组的最后两项,里面不用再循环arr.length-1;而是arr.length-1-i;

  var arr=[2,4,5,1,9];
    function maopao(arr){
        //第一层循环: 表明要比较的次数,比如arr.length-1个数,肯定要比较arr.length-1次
        for(var i=0;i<arr.length-1;i++){
 //第二层循环:里面的循环再次完整执行,由于最大的数已经在最后了,没有必要去比较数组的最后两项
            for (var j=0;j<arr.length-1-i;j++){
                if(arr[j]>arr[j+1]){
                     var t=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=t;
                }
            }
        }
        return arr;
    }
   console.log( maopao(arr)+"冒泡排序")

时间复杂度之类的,现在还不是很明白,不过总算明白了冒泡排序的里层循环的长度为何是数组-1-外层循环了

相关文章

  • 算法:冒泡排序

    本文内容:1、什么是冒泡排序?2、冒泡排序的 C/OC 实现与算法分析。 算法总目录:算法? 1、什么是冒泡排序?...

  • 算法-冒泡排序

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

  • 经典排序算法总结

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

  • 七大排序算法之冒泡排序

    七大排序算法之冒泡排序 @(算法笔记)[排序算法, 冒泡排序, C++实现] 冒泡排序介绍 冒泡排序是七大排序算法...

  • 基本算法——快速排序算法

    快速排序算法是对冒泡算法的改进。所以我们首先来简单的谈谈冒泡算法。 1.冒泡算法 冒泡排序(Bubble S...

  • 2022-03-01

    1.排序算法: 到底什么是排序?-它是排列列表中项目顺序的算法。 重要的排序算法—— 冒泡排序:冒泡排序是最基本的...

  • 前端算法学习-第一篇

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

  • 2019-08-11

    Javascript中常用几种基础算法 1 排序-冒泡排序 //冒泡排序 function bubbleSort...

  • iOS算法总结-冒泡排序

    iOS算法总结-冒泡排序 iOS算法总结-冒泡排序

  • 冒泡排序算法,选择排序算法,快速排序算法的OC实现

    1.冒泡排序算法

网友评论

      本文标题:算法--冒泡排序(1)

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