首页 > 编程语言 >冒泡排序、选择排序、插入排序 - JavaScript 中的数据结构和算法

冒泡排序、选择排序、插入排序 - JavaScript 中的数据结构和算法

时间:2024-09-22 08:51:16浏览次数:7  
标签:插入排序 JavaScript 冒泡排序 sortedarray 算法 input 排序

排序算法是许多计算任务的支柱,在组织数据以实现高效访问和处理方面发挥着至关重要的作用。无论您是刚刚开始探索算法世界的初学者,还是希望刷新知识的经验丰富的开发人员,了解这些基本排序技术都是至关重要的。在这篇文章中,我们将探讨一些更基本的排序算法 - 冒泡排序、选择排序和插入排序。 冒泡排序冒泡排序是一种简单的、基于比较的排序算法。它重复遍历列表,比较相邻元素,如果顺序错误则交换它们。这个过程一直持续到不再需要交换为止,表明列表已排序。虽然冒泡排序易于理解和实现,但对于大型数据集来说效率较低,因此它主要适用于教育目的和小型数据集。冒泡排序的时间复杂度为o(n2).// a random array of 20 numbersconst inputarray = [34, 100, 23, 45, 67, 89, 12, 56, 78, 90, 23, 45, 67, 89, 12, 56, 78, 90, 23, 45]function bubblesort (input) { const n = input.length const sortedarray = [...input] // loop n times for (let i = 0; i b, swap; else do nothing if (sortedarray[j] &gt; sortedarray[j+1]) { const temp = sortedarray[j] sortedarray[j] = sortedarray[j+1] sortedarray[j+1] = temp } } } return sortedarray}console.log("input:", inputarray)console.log("ouput:", bubblesort(inputarray))登录后复制 选择排序选择排序是一种简单的、基于比较的排序算法。它的工作原理是将列表分为已排序区域和未排序区域。它反复从未排序区域中选择最小(或最大)元素,并将其与第一个未排序元素交换,逐渐增大排序区域。选择排序对于大型数据集来说并不是最有效的,但很容易理解,并且具有最小化交换次数的优点。选择排序的时间复杂度为 o(n2).// a random array of 20 numbersconst inputarray = [34, 100, 23, 45, 67, 89, 12, 56, 78, 90, 23, 45, 67, 89, 12, 56, 78, 90, 23, 45]function selectionsort (input) { const n = input.length const sortedarray = [...input] // loop n times for (let i = 0; i <h2> 插入排序</h2><p>插入排序是一种直观的、基于比较的排序算法,一次构建一个元素的最终排序列表。它的工作原理是从列表的未排序部分中获取元素并将它们插入到已排序部分中的正确位置。插入排序对于小型数据集或接近排序的数据非常有效,并且在实际应用中经常用作更复杂算法的更简单替代方案。</p><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/c1c2c2ed740f" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">Java免费学习笔记(深入)</a>”;</p><p>插入排序的时间复杂度为<strong>o(n<sup>2</sup>)</strong>.<br></p><pre class="brush:php;toolbar:false">function insertionSort (input) { const n = input.length const sortedArray = [...input] // loop n times, starting at index 1 for (let i = 1; i = 0; j--) { // if number in current index is larger than compared number, swap if (sortedArray[j] &gt; comparedNumber) { sortedArray[tempIndex] = sortedArray[j] sortedArray[j] = comparedNumber tempIndex = j } else { // OPTIONAL: else exit break } } } return sortedArray}console.log("Input:", inputArray)console.log("Ouput:", insertionSort(inputArray))登录后复制 总结虽然冒泡排序、选择排序和插入排序等基本排序算法对于大型数据集可能不是最有效的,但它们为理解算法设计提供了良好的基础。如果您觉得这篇文章有帮助,我很想听听您的想法。在下面发表评论,分享您的见解,或提出您的任何问题 - 我会尽力回答。编码愉快! 以上就是冒泡排序、选择排序、插入排序 | JavaScript 中的数据结构和算法的详细内容,更多请关注我的其它相关文章!

标签:插入排序,JavaScript,冒泡排序,sortedarray,算法,input,排序
From: https://www.cnblogs.com/aow054/p/18424850

相关文章

  • 【油猴脚本】00011 案例 Tampermonkey油猴脚本,动态渲染表格-实现页面动态-添加提取数
    前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦......
  • JavaScript-运算符、语句
    运算符1.赋值运算符:将等号右边的值赋予给左边,要求左边必须是一个容器+=出现是为了简化代码代码示例:2.一元运算符:自增:符号:++作用:让变量的值+1自减:符号:--作用:让变量的值-1使用场景:经常用于计数来使用。比如进行10次操作,用它来计算进行了多少次了......
  • Vue学习笔记6:分别使用纯JavaScript和Vue的v-if 指令来有条件地渲染网页元素
    0缘起有时我们的网页需要根据需要用户的选择展示不同的页面元素。例如:<p>你喜欢哪种水果?</p><p> <label> <inputtype="radio"value="苹果"name="fruit"/> 苹果 </label></p><p> <label> <inputtype="ra......
  • 什么是 JavaScript 闭包?
    让我们来谈谈一个易于理解但掌握后却非常强大的javascript功能:闭包。它们是可以访问自己的作用域、外部函数的作用域和全局作用域的函数。它们允许函数记住创建它的环境,即使在执行该函数之后也是如此。考虑这个例子:functioncreateCounter(){letcount=0;//This`count`i......
  • 了解 Javascript 中的 POST 请求
    functionnewPlayer(newForm){fetch("http://localhost:3000/Players",{method:"POST",headers:{'Content-Type':'application/json'},body:JSON.stringify(newForm)}).then(resp=&g......
  • 了解 JavaScript 中的高阶组件和高阶函数
    高阶函数高阶函数是一个函数,它要么接受另一个函数作为参数,要么返回一个函数作为结果。这个概念是函数式编程的基础,并允许强大的抽象。示例:functiongreet(name){return`hello,${name}!`;}functionsayhello(fn,name){returnfn(name);}console.log(sayhello(greet,'......
  • 了解 JavaScript 生成器:强大的代码流控制工具
    生成器是javascript中最强大的功能之一,它允许我们编写可以根据需要暂停和恢复的代码。与一次执行所有代码的常规函数??不同,生成器使用延迟执行,增量返回值,从而更容易处理数据序列、迭代或长时间运行的进程。发电机如何工作?在javascript中,生成器是使用function*关键字定义的......
  • 书评:Eloquent JavaScript – Web 开发人员的基本指南
    作为最广泛使用的编程语言之一,JavaScript为网络提供了动力。然而,由于其快速发展,跟上JavaScript趋势可能具有挑战性。许多关于这个主题的书籍很快就会过时,但有一本书经受住了时间的考验:EloquentJavaScript。这本书已成为开发人员的最爱,并且正在稳步发展为那些希望加深对语言理......
  • DOM【JavaScript】
    在JavaScript中,DOM(DocumentObjectModel:文档对象模型)是web页面的编程接口,用于表示和操作HTML和XML文档。它将文档结构化为一个树形结构,允许开发者通过JavaScript访问和修改网页的内容、结构和样式。以下是一些关于DOM的关键概念:1.结构DOM树结构是以节点为单位组......
  • JavaScript 基础 - 第20天_Node.js入门
    文章目录Day01_Node.js入门提前安装软件目录学习目标01.什么是Node.js目标讲解小结02.fs模块-读写文件目标讲解小结03.path模块-路径处理目标讲解小结04.案例-压缩前端html目标讲解小结05.案例-压缩前端JS目标讲解小结06.认识URL中的端口号目标讲解小结07.http模......