首页 > 编程语言 >JavaScript学习笔记—冒泡排序

JavaScript学习笔记—冒泡排序

时间:2023-01-23 11:35:54浏览次数:46  
标签:arr 元素 JavaScript 笔记 let 冒泡排序 排序

数组内各元素按升或降序排序
[9,1,3,2,8,0,5,7,6,4]

思路1:

  • 比较相邻两个元素,然后根据大小来决定是否交换它们的位置
  • 例子:
    第1次排序:1, 3, 2, 8, 0, 5, 7, 6, 4, 9
    第2次排序:1, 2, 3, 0, 5, 7, 6, 4, 8, 9
    第3次排序:1, 2, 0, 3, 5, 6, 4, 7, 8, 9
    第4次排序:1, 0, 2, 3, 5, 4, 6, 7, 8, 9
    第5次排序:0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  • 这种排序方式被称为冒泡排序,冒泡排序是最慢的排序方式,数字少还可以凑合用,不适用于数据量较大的排序
const arr = [9, 1, 3, 2, 8, 0, 5, 7, 6, 4];
for(let i = 0; i < arr.length - 1; i++) {
  for(let j = 0; j < arr.length - 1; j++) {
    // arr[i](前边的元素) arr[i+1](后边元素)
    if(arr[j] > arr[j + 1]) {
      // 大数在前,小数在后,需要交换两个元素的位置
      let temp = arr[j]; // 临时变量用了存储arr[i]的值
      arr[j] = arr[j + 1]; // 将arr[i+1]的值赋给arr[i]
      arr[j + 1] = temp; // 修改arr[i+1]的值
    }
  }
  console.log("第"+(i+1)+"次排序:" + arr);
}
/*
  第1次排序:1,3,2,8,0,5,7,6,4,9
  第2次排序:1,2,3,0,5,7,6,4,8,9
  第3次排序:1,2,0,3,5,6,4,7,8,9
  第4次排序:1,0,2,3,5,4,6,7,8,9
  第5次排序:0,1,2,3,4,5,6,7,8,9
  第6次排序:0,1,2,3,4,5,6,7,8,9
  第7次排序:0,1,2,3,4,5,6,7,8,9
  第8次排序:0,1,2,3,4,5,6,7,8,9
  第9次排序:0,1,2,3,4,5,6,7,8,9
*/

思路2:

标签:arr,元素,JavaScript,笔记,let,冒泡排序,排序
From: https://www.cnblogs.com/zibocoder/p/17065054.html

相关文章

  • Linux笔记
    Invalidmessagereceivedwithsignature18245参考:https://blog.csdn.net/fh_luchenxi/article/details/103911419查看端口使用情况参考:https://www.cnblogs.com/qin......
  • 学习笔记——Liunx;Linux文件与目录结构;VI/VIM编辑器(一般模式、编辑模式、命令模式)
    2023-01-23一、Linux1、Liunx的简介Linux是一套免费使用和自用传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能运......
  • 2023年1月23日笔记
    连接池C#客户端暴露的所有接口均为异步接口。使用C#客户端从首先建立一个SessionPool开始,建立SessionPool时需要指定服务器的IP、Port以及SessionPool的大小,SessionPoo......
  • 读函数式编程思维笔记04_语言与范式_模式与重用
    1. 语言的分类1.1. 静态类型1.1.1. 要求我们事先指定变量和函数的类型1.2. 动态类型1.2.1. 允许推迟指定类型1.3. 强类型1.3.1. 变量“知道”自己的类型1.3......
  • ARM-DSP读书笔记 开坑
    ARM-DSP读书笔记开坑​ 原书是ARMEducationMedia的《DigitalSignalProcessingusingArmCortex-MbasedMicrocontrollers-TheoryandPractice》。由于电赛备赛......
  • JavaScript学习笔记—数组去重实例
    编写代码去除数组中重复的元素constarr=[1,2,1,3,2,2,4,5,5,6,7];//分别获取数组中的元素for(leti=0;i<arr.length;i++){//获取当前值后边的所有值f......
  • 动力节点javaSE笔记
    目录调用方法:类名.方法名(其中在一个类中调用,类名可以省略)方法重载条件:面向对象三大特征:类--->[实例化]--->对象(实例)对象--->[抽象]--->类方法体内的变量是局部变......
  • JavaScript学习笔记—复制
    9.复制(1)浅拷贝(shallowcopy)通常对对象的拷贝都是浅拷贝只对对象的浅层进行复制(只复制一层)如果对象中存储的数据是原始值,那么拷贝的深浅是不重要浅拷贝只会对对象本......
  • 学习笔记——SSM整合(思路、步骤)
    2023-01-22一、SSM整合1、Spring+SpringMVC(1)容器管理对象,由DispatcherServlet管理(2)Spring容器对象,由ContextLoaderListener管理2、解决组件扫描的冲突问题(1)SpringM......
  • JavaScript 跨域问题
    一、什么是跨域跨域(Cross-originresourcesharing,CORS)是指在浏览器中,同源策略限制了来自不同域的脚本对每个网络资源的访问权限。同源策略限制了一个网页脚本只能......