34.冒泡排序

参考网站  https://visualgo.net/

冒泡排序:

前后两个数两两进行比较

前 < 后, 则后面一个继续与下一个比较

前 > 后,则交换位置,再与下一个比较

第一轮比较完成可以确定最后一个数字的位置

再进行第二轮来确定倒数第二个的位置

直到排序完成

arr.length = 5

关于 j < arr.length-i-1,由于我们从第一个从0开始,那么我们看第0轮,j

j < 5-0-1也就是 j < 4 也就是说 j 最大取3 ,arr[3]与arr[3+1]进行比较

轮数/i 0 1 2 3 4 比较次数/arr.length-i-1
0 5 4 3 2 1 4
1 4 3 2 1 5 3
2 3 2 1 4 5 2
3 2 1 3 4 5 1
  1 2 3 4 5  

注意可以每一轮都比较4次,只是算法比较占内存

let arr = [5,4,3,2,1]for(let i = 0; i < arr.length; i++){ // 比较的轮数  for(let j = 0; j < arr.length - i -1; j++){ //比较的组数    if(arr[j]>arr[j+1]){      let a = arr[j]      arr[j] = arr[j+1]      arr[j+1] = a    }  }}
(0)

相关推荐

  • 前端笔试题——数组去重(保姆级手撕)

    引言: 对于传统的前端工程师来说,更多的只是把服务端响应的数据渲染到页面上. 随着前端的不断进化,算法对我们而言也日渐重要,大公司为了优中选优,经常也会用算法题去筛选更优秀的人才. 算法,或许在工作中 ...

  • JavaScript数组 - 冒泡排序

    冒泡排序 这节我们来讲大名鼎鼎的冒泡排序 原理:前后两个数两两进行比较,如果符合交换条件,交换位置,知道所有数据排序完成,结束比较. 举个小例子: 我们来给9,8,7,6,5,4,排序为4,5,6,7 ...

  • 整理九道关于javascript字符串的笔试题

    整理九道关于javascript字符串的笔试题

  • 排序算法的Javascript实现

    排序算法的Javascript实现

  • 那些好用的 VS Code 插件,究竟是如何提高编码效率的?

    今天 以下文章来源于HelloGitHub ,作者点击关注→ HelloGitHub分享 GitHub 上有趣.入门级的开源项目. 作者:HelloGitHub-小夏 一.从「整体」到「局部」 在开始 ...

  • 算法面试题四:两数之和,有效的数独,旋转图像

    这里介绍两数之和,有效的数独及旋转图像的个人解决方法 题目一:两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下 ...

  • 基础复习1

    基础回顾1 查找元素位置 题目描述:找出元素 item 在给定数组 arr 中的位置 输出描述: 如果数组中存在 item,则返回元素在数组中的位置,否则返回 -1 function indexOf( ...

  • 前端笔试题——手撕快速排序(保姆级手撕)

    引言: 许多互联网公司在招聘前端开发人才时,不仅考察面试者对于前端知识的掌握程度,数据结构与算法也渐渐成为了默许的要求. 除了考察链表.二叉树.图等数据结构以外,在算法中最具有代表性的就是" ...

  • 面试官在“逗”你系列:数组去重你会几种呀?

    前言 数组去重是一个老生常谈的话题,也是前端童鞋在面试时的一道高频题.本文将深入的探索数组去重的原理及实现,为各位小伙伴提供多种可以反手"调戏"面试官的解决方案. 话不多说,上去就 ...

  • 前端面试题解密:经典算法之冒泡算法(ES6版)及优化

    前言 随着前端的飞速发展,前端业务开发给前端工程师提出了更高的要求,因而算法题也越来越高频次的出现在前端面试中.有很多的小伙伴找胡哥苦诉,在前端实际开发中(除了涉及游戏开发方面),算法使用有很多吗?大 ...

  • 35.数组.选择排序

    选择排序: 第一轮: 第0个与第1个比, 如果  第0个 > 第1个  那就交换位置,第0个再与第2个比...... 第二轮: 第1个与第2比, ...................直到排序完 ...

  • JavaScript数组 - 选择排序

    选择排序 选择排序相对于冒泡排序是比较好理解的排序方法 原理:通过比较首先选出最小的数放在第一个位置上,然后在其余的数中选择次小的数放在第二个位置,以此类推,直到排序完成. 同样还是用冒泡的那几个数9 ...