JavaScript 插入排序程序2025年4月19日 | 阅读 5 分钟 JavaScript 中插入排序概述排序是任何从事计算机科学领域的人都必须理解的概念,无论他们选择学习哪种编程语言。排序过程通过按升序或降序排列数据,使我们能够高效便捷地查找所需数据。 排序算法对数字或字符串等元素进行排序。排序算法有很多种,可以根据它们的排序方法和实现过程中的方法进行分类,每种方法都有不同的优缺点。 在本文中,我们将重点介绍插入排序,这是一种常用的排序算法,也易于理解和使用。 JavaScript 中的插入排序是什么?插入排序是一种简单直观的算法,适用于对小列表进行排序。它通过从左到右按顺序放置每个元素来工作。这是一种比较排序,因为它将当前元素与已排序列表中的另一个元素进行比较。它使用迭代方法将每个元素放置到列表中的正确位置。 算法的效率可以通过其完成排序过程所需的时间来判断;耗时越长,说明时间复杂度较差,需要其他排序技术。插入排序的时间复杂度为 O(n²),表示最坏情况下的操作次数为 n。因此,由于性能不佳,它通常不能应用于大列表。相比之下,对于小列表,它比快速排序和归并排序等复杂技术更有效。 插入排序比选择排序和冒泡排序等其他二次排序更有效。最佳情况时间复杂度为 O(n),即线性。这发生在输入数组已排序的情况下。然而,插入排序的平均运行时间复杂度仍然是二次的。 现在我们将看几个输入和输出的例子。 考虑一个包含随机顺序(未排序)元素的数组。我们可以借助插入排序算法对它们进行排序。那么让我们来看下面的例子。 插入排序算法是如何工作的?可以通过实际演示来理解插入排序算法的功能。考虑数组 arr = [24, 22, 26, 10, 12]。 ![]() 第一次遍历 在插入排序算法开始时,数组的前两个元素会相互比较。 ![]() 在这种情况下,22 小于 24;因此,数字没有按升序排序,24 也未正确放置。因此,必须交换 22 和 24 的位置。在这种情况下,24 当前保留在一个子数组中。 ![]() 第二次遍历 现在,比较数组中的接下来的两个元素。 ![]() 在这种情况下,数字 24 和 26 是升序的,因为 26 大于 24。所以,不会发生交换。 此外,24 也属于包含 22 的子数组。 第三次遍历 目前,子数组包含两个元素 22 和 24。现在,我们将比较接下来的两个元素,10 和 26。 ![]() 因为 10 小于 26,交换这两个值。 ![]() 即使交换后,10 和 24 仍未排序,因此再次交换。 ![]() 再次,10 和 22 未排序,因此再次交换。 ![]() 现在,10 处于正确的位置。 第四轮 已排序子数组中的元素是 10、22 和 24。 接下来的两个元素是 26 和 12,它们正在进行比较。 ![]() 由于它们未排序,因此交换这两个值。 ![]() 现在,12 小于 24。因此,交换它们。 ![]() 这里 12 小于 22,它们未排序,因此交换它们。 ![]() 最后,数组已完全排序。 算法要使用插入排序算法将大小为 n 的数组按升序排序,需要遵循以下步骤
如果数据是有序的,它有助于找到复杂问题的最佳解决方案。这些操作的一些示例如下
演示 1下面是插入排序算法的一个说明。 代码 输出 ![]() 演示 2使用 unshift() 方法 此方法用于在数组的开头插入其他元素。它返回数组的更新后的长度。 代码 输出 ![]() 结论插入排序是一种简单、稳定且就地(in-place)的比较排序算法。尽管它的时间复杂度为 O(n²),这使得它相对较慢,但它对小型输入数组来说是非常有效的。在这种情况下,它的性能可能优于广泛使用的分治算法。正是由于这个原因,JavaScript 在其内置排序函数中采用了混合方法,将插入排序与归并排序或快速排序结合使用。 对于更大的数组,与许多其他二次排序算法(如冒泡排序、侏儒排序和选择排序)相比,插入排序也表现出卓越的性能。 下一主题高级 JavaScript 概念 |
我们需要在 JavaScript 中反复处理键值对。在谈论键值对时,最常用的方法是使用对象来存储键值对,但 ECMAScript 2015 引入了一个名为 Map 的功能,它也用于存储键值对。我们将理解……
阅读 4 分钟
在 Web 开发领域,JavaScript 对象表示法 (JSON) 已成为数据交换的事实标准。JSON 提供了一种轻量级且易于阅读的格式,用于在服务器和 Web 应用程序之间存储和交换数据。在 JavaScript 中处理 JSON 数据时,它...
阅读 6 分钟
引言:在软件工程和编程改进领域,数据结构在高效地组织和管理数据方面起着至关重要的作用。在这些结构中,优先队列因其根据优先级级别处理元素的能力而脱颖而出。在 JavaScript 中,一种灵活且广泛使用的...
阅读 10 分钟
什么是 JavaScript? JavaScript 是一种用于客户端和服务器端开发的脚本语言。它使开发人员能够创建交互式网页。换句话说,JavaScript 是一种基于文本的方法,允许开发人员创建动态更新的内容、控制多媒体,或者我们可以为其制作动画...
阅读 4 分钟
什么是?在 JavaScript 中,Astro.js 是一个针对构建快速、内容驱动的网站进行优化的 Web 框架。它是一个现代的基于 JS 的框架,有助于构建快速的内容网站。简单来说,指的是在上下文中使用 JavaScript 代码...
阅读 6 分钟
字符串是任何编程语言中最不可或缺的部分。这些字符串的处理和处理非常重要。JavaScript 在处理字符串方面也不例外,我们可以使用许多不同的方法。JavaScript 中的剥离(stripping)是指删除空格、空白...
阅读 3 分钟
简介 JavaScript 是一种面向对象的编程语言,通常用于互联网增强。JavaScript 的一个有趣操作是操作数据结构,包括链表。在本教程中,我们将探索如何在替代的、非典型的,甚至颠倒的顺序中设置一个未连接的链表...
11 分钟阅读
什么是 JavaScript 中的框架?在 JavaScript 中,框架是预先编写的代码,JavaScript 库可以为开发人员提供预先构建的解决方案,以应对 Web 开发中的常见任务和挑战。大多数 JavaScript 框架通常包含函数、模块和 API,它们有助于简化...
阅读 6 分钟
正则表达式 "\v" 在 JavaScript 中显示输入字符串中可用的垂直制表符。如果存在垂直制表符元素,则会显示值的位置;否则,使用 search 方法会显示 "-1" 值。我们可以测试、搜索和匹配...
阅读9分钟
JavaScript 中的模块是什么?在 JavaScript 中,模块是组织代码结构的一种方式。模块允许开发人员将代码分解成更小、可重用的部分。这意味着它可以是一小段代码,我们可以轻松地在它们之间导入和导出...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India