javascript 冒泡排序 正序和倒序实现代码

冒泡排序是一种简单的排序算法,其基本思想是通过比较相邻元素的大小进行排序。在一个数组中,每次比较都会将相邻元素中较大的元素向右移动。重复此过程直到整个数组都按从小到大的顺序排列。

以下是 JavaScript 冒泡排序的正序实现代码:

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

其中,arr 表示待排序的数组。代码中使用了两个 for 循环嵌套来实现冒泡排序,外层循环控制循环的次数,内层循环控制比较的次数。如果前一个元素比后一个元素大,则交换它们的位置。循环完成后,返回排序后的数组。

以下是 JavaScript 冒泡排序的倒序实现代码:

function bubbleSortReverse(arr) {
  for (let i = 0; i < arr.length - 1; i++) {
    for (let j = 0; j < arr.length - 1 - i; j++) {
      if (arr[j] < arr[j + 1]) {
        let temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
      }
    }
  }
  return arr;
}

与正序实现代码相比,倒序实现代码只需将 if 语句中的大于号(>)替换为小于号(<),即可实现从大到小排序。

下面给出两个示例以说明冒泡排序的具体过程。

示例1:

假设有如下一个数组:

let arr = [5, 3, 8, 4, 2];

首先进行正序排序。第一次循环后,变化如下:

[3, 5, 4, 2, 8]

第二次循环后,变化如下:

[3, 4, 2, 5, 8]

第三次循环后,变化如下:

[3, 2, 4, 5, 8]

由于第四次循环后没有元素需要交换,因此循环结束,最终排序结果为:[2, 3, 4, 5, 8]。

示例2:

假设有如下一个数组:

let arr = [5, 3, 8, 4, 2];

然后进行倒序排序。第一次循环后,变化如下:

[5, 8, 4, 3, 2]

第二次循环后,变化如下:

[8, 5, 4, 3, 2]

第三次循环后,变化如下:

[8, 5, 4, 3, 2]

由于第四次循环后没有元素需要交换,因此循环结束,最终排序结果为:[8, 5, 4, 3, 2]。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript 冒泡排序 正序和倒序实现代码 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • 最全的package.json解析

    当我们使用Node.js的时候,我们通常都会使用一个名为package.json的文件,它记录了我们项目中所依赖的各个包的版本、开发时需要的工具、作者等信息。本文将详细解析package.json的各个属性以及如何使用这些属性来管理自己的项目。 package.json文件的基本概念 package.json文件是一个符合JSON规范的文件,包含了这个项目的…

    node js 2023年6月8日
    00
  • 浅谈Node.js:fs文件系统模块

    当我们使用Node.js来进行文件操作时,我们需要调用fs模块(File System),这个模块提供了对系统文件及目录的读写操作功能。 文件读取 想要读取一个文件,需要使用fs模块中的读取文件函数readFile方法,语法如下: fs.readFile(file,[options],callback) 其中,file为文件路径,options为参数(可省略…

    node js 2023年6月8日
    00
  • Node的文件系统你了解多少

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,具有非常强大的 I/O 、网络和文件系统能力。它的文件系统模块 (FileSystem) 可以让开发者轻松地访问计算机文件系统,读取、写入、删除文件等操作。 在Node.js中,文件系统模块被称为fs。要使用FS中提供的方法,只需在代码中导入fs模块。例如: const…

    node js 2023年6月8日
    00
  • Angularjs根据json文件动态生成路由状态的实现方法

    下面是“Angularjs根据json文件动态生成路由状态的实现方法”的完整攻略: 目录结构 – app/ – js/ – controllers/ – homeController.js – aboutController.js – directives/ – navbarDirective.js – services/ – dataService.js …

    node js 2023年6月8日
    00
  • Mac 安装 nodejs方法(图文详细步骤)

    Mac 安装 nodejs方法(图文详细步骤) Node.js 是一个基于 Chrome JavaScript 运行时建立的平台,可用于构建高度伸缩性的 Web 应用程序。以下是在 Mac 上安装 Node.js 的详细步骤。 步骤一:检查是否已安装 Homebrew Homebrew 是 Mac 下的软件包管理器,我们可以使用它来安装 Node.js。检查…

    node js 2023年6月8日
    00
  • node.js中的forEach()是同步还是异步呢

    在Node.js中,forEach()方法是同步还是异步取决于迭代器函数是否为异步函数。 当迭代器函数是同步函数时,forEach()方法就是同步的。每个元素的迭代器函数都会被立即调用,直到循环结束,然后forEach()返回。 示例1: const arr = [‘a’, ‘b’, ‘c’]; arr.forEach((item) => { cons…

    node js 2023年6月8日
    00
  • 调试Node.JS的辅助工具(NodeWatcher)

    调试是程序开发中不可或缺的一环,Node.js作为JavaScript语言的服务器端开发平台,也有一些辅助工具用来进行调试。其中,NodeWatcher是一款比较实用的辅助工具,它可以监测服务器端文件的变化,从而实现了热重载,方便程序员进行调试和开发。 安装NodeWatcher 在使用NodeWatcher前,需要先安装它的相关依赖。首先,需要安装Node…

    node js 2023年6月8日
    00
  • 详解nodejs 开发企业微信第三方应用入门教程

    详解nodejs 开发企业微信第三方应用入门教程 前言 本教程旨在介绍如何使用Node.js开发企业微信第三方应用,相关内容适用于搭建企业内部应用或者SaaS平台。通过本教程,您将学习到如下知识: 掌握企业微信第三方应用的基本概念和开发流程 熟悉OAuth2.0协议并实现第三方应用的授权流程 学会使用企业微信API接口,开发出功能丰富的企业微信应用 准备工作…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部