C 语言插入排序2024 年 8 月 28 日 | 3 分钟阅读 插入排序是一种简单的排序算法,它以迭代方式一次一个地构建数组的已排序部分。它是一种基于比较的原地方法,平均时间复杂度为 O(n2)。 该方法将数组分为两半:已排序和未排序。数组的第一个元素首先被认为是已排序部分,而其余项最初被认为是未排序部分。 算法随后将每个未排序元素与已排序部分中的元素进行比较,从末尾开始,并向右移动较大的元素一个位置,直到在正确位置找到未排序元素。 确定正确位置后,未排序元素将被插入到已排序部分的该位置。 重复此过程,直到未排序部分的所有成员都已插入到已排序部分,从而形成一个完全排序的数组。 以下是插入排序的伪代码 在此伪代码中,n 表示数组中的元素数量,arr 表示要排序的数组,i 和 j 是循环变量,key 是要插入到数组已排序部分中的元素。 用途插入排序对于对小型数组进行排序非常有用,并且当输入数组已部分排序时,其速度表现良好。它经常用作更高级排序算法(如归并排序和快速排序)的构建块。 以下是 C 语言中插入排序的示例 输出 5 6 11 12 13 此代码定义了 insertionSort 函数,该函数将整数数组 arr 及其大小 n 作为输入。该函数使用 for 循环遍历数组的每个元素,从第二个元素开始(因为第一个元素已排序)。 该函数将每个元素的值存储在一个名为 key 的变量中,并将一个名为 j 的变量设置为前一个元素的索引。然后,代码使用 while 循环将 key 与每个前一个元素进行比较,直到找到 key 的正确位置。 每个大于 key 的元素都向右移动一个位置,并且 j 递减,直到达到正确位置。随后,通过将其赋值给 arr[j + 1] 将 key 插入到正确位置。 最后,main 函数使用示例数组及其大小来运行 insertionSort,然后输出排序后的数组。 优点
缺点
结论插入排序为小型或部分排序的数组提供了一种直接而有效的方法。它不适用于大型数组或随机输入,但可用于构建更复杂的排序算法。总的来说,插入排序是高效排序小型或部分排序数组且内存使用量小的可靠解决方案。 下一个主题C 语言中的队列 |
计算机编程需要输入/输出 (I/O) 操作。使用 I/O 操作,数据会从各种源(包括文件、键盘和屏幕)读取和写入。在 C 计算机语言中,I/O 操作可以是格式化的或非格式化的。在这篇博文中,我们将介绍...
阅读 4 分钟
目前全球被广泛使用的两种双字符编码方案是 Unicode 和 ASCII。与用于将文本表示为符号、字符和数字的 ASCII 不同,Unicode 是一种字符编码,可用于处理...
阅读 2 分钟
强大的“system()”函数允许您直接从程序中运行系统命令。借助此函数,您可以与底层操作系统进行通信并访问各种功能。在本文中,我们将探讨...
阅读 6 分钟
数组和字符串是 C 语言中广泛使用的两种数据类型,尽管它们在功能、用途和应用方面存在显著差异。在本文中,我们将探讨数组和字符串在 C 语言中的区别。定义和属性数组是...
7 分钟阅读
简介 在 C 编程中,全局变量是声明在任何函数之外且可以被程序中任何函数访问的变量。与只能在其自身函数内访问的局部变量不同,全局变量对整个程序可见。在...
阅读 6 分钟
给定一个下限x和一个上限y,如果我们应该计算该范围内奇数和偶数的数量,我们可以选择使用for循环遍历从下限到上限的常规方法...
7 分钟阅读
基于矩阵的数学问题解决方法需要大量的计算工作,如果稍有差错,用户就无法得到期望的答案。你需要为每一行和每一列输入所需的组件。仅仅输入每个... 的数据是不够的。
21 分钟阅读
在本文中,您将学习有关使用 C 语言构建的测验游戏项目。测验游戏是关于常识测试的。程序中涉及的方法或函数:main() 方法 “main()” 方法是一个函数,它提供了所有...
77 分钟阅读
C 语言的数学库中有许多函数可用于解决各种三角数学问题。这些功能使该语言成为针对科学界在各个领域创建程序的强大工具。atan2() 函数是众多函数之一……
阅读 4 分钟
C中的逻辑运算符在C编程中,逻辑运算符主要用于执行逻辑运算,通常在条件语句和求值中使用。逻辑运算符会对表达式进行求值,根据求值过程返回真(1)或假(0)。它们主要用于...
7 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India