JavaScript 中的冒泡排序算法

JavaScriptJavaScriptBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,我们将进行一个 JavaScript 编程练习,重点是使用冒泡排序算法对数组进行排序。这个实验的目的是帮助你理解冒泡排序算法的工作原理,并给你一个机会来练习你的 JavaScript 编程技能。在这个实验结束时,你将更好地理解如何在 JavaScript 中实现冒泡排序算法,以及如何使用它来对数字数组进行排序。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/cond_stmts("Conditional Statements") javascript/BasicConceptsGroup -.-> javascript/loops("Loops") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28180{{"JavaScript 中的冒泡排序算法"}} javascript/data_types -.-> lab-28180{{"JavaScript 中的冒泡排序算法"}} javascript/arith_ops -.-> lab-28180{{"JavaScript 中的冒泡排序算法"}} javascript/comp_ops -.-> lab-28180{{"JavaScript 中的冒泡排序算法"}} javascript/cond_stmts -.-> lab-28180{{"JavaScript 中的冒泡排序算法"}} javascript/loops -.-> lab-28180{{"JavaScript 中的冒泡排序算法"}} javascript/array_methods -.-> lab-28180{{"JavaScript 中的冒泡排序算法"}} javascript/spread_rest -.-> lab-28180{{"JavaScript 中的冒泡排序算法"}} end

冒泡排序算法

要进行编码练习,请打开终端/SSH 并输入 node 以开始。冒泡排序算法用于对数字数组进行排序。

使用冒泡排序算法对数组进行排序的步骤:

  1. 声明一个变量 swapped,用于指示在当前迭代期间是否有任何值被交换。

  2. 使用展开运算符 (...) 克隆原始数组 arr

  3. 使用 for 循环遍历克隆数组的元素,在最后一个元素之前终止。

  4. 使用嵌套的 for 循环遍历数组中从 0i 的部分,交换任何相邻的无序元素,并将 swapped 设置为 true

  5. 如果在一次迭代后 swappedfalse,则无需再进行更改,因此返回克隆数组。

示例代码:

const bubbleSort = (arr) => {
  let swapped = false;
  const a = [...arr];
  for (let i = 1; i < a.length; i++) {
    swapped = false;
    for (let j = 0; j < a.length - i; j++) {
      if (a[j + 1] < a[j]) {
        [a[j], a[j + 1]] = [a[j + 1], a[j]];
        swapped = true;
      }
    }
    if (!swapped) return a;
  }
  return a;
};

bubbleSort([2, 1, 4, 3]); // [1, 2, 3, 4]

总结

恭喜你!你已经完成了冒泡排序实验。你可以在 LabEx 中练习更多实验来提升你的技能。