自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 数据结构的归并排序(c语言版)

与简单的冒泡排序或选择排序相比,归并排序的时间复杂度为O(nlogn),这使它能够高效地处理大规模的数据集。通过不断地将数组拆分成更小的子数组,直至子数组只有一个元素,然后再将这些有序的子数组合并起来,最终得到一个有序的数组。稳定排序:归并排序是一种稳定的排序算法,也就是说,当两个相等的元素出现时,它们在输出序列中的相对顺序与输入序列中的相对顺序一致。时间复杂度稳定:归并排序的时间复杂度为O(nlogn),不管输入数据的初始状态如何,时间复杂度都是稳定的。归并排序是一种高效的排序算法,它采用了分治的思想。

2024-06-05 18:38:39 1817 62

原创 数据结构的快速排序(c语言版)

快速排序是一种常用的排序算法,它是基于分治策略的一种高效排序算法。2.快排的适用场景大规模数据排序:快速排序的平均时间复杂度为O(nlogn),在处理大规模数据时比其他算法如冒泡排序、插入排序更加高效。内存受限的环境:快速排序是一种就地排序算法,不需要额外的存储空间,这在内存受限的环境(如嵌入式系统)中更有优势。数据较为随机分布:快速排序的性能最佳情况发生在数据较为随机分布的情况下。如果数据已经基本有序或完全逆序,则会退化为O(n^2)的时间复杂度。

2024-05-31 22:04:52 3023 53

原创 数据结构的希尔排序(c语言版)

希尔排序是一种基于插入排序算法的优化排序方法。它的基本思想如下:选择一个增量序列 t1,t2,......,tk,其中 ti > tj, 当 i < j,并且 tk = 1。2.希尔排序的优点时间复杂度较低。希尔排序的时间复杂度一般在 O(n^1.25) 和 O(n^1.5) 之间,优于简单的插入排序。在部分有序的数组中效率很高。希尔排序通过分组插入排序来利用数据的局部有序性,可以有效地加快排序速度。空间复杂度低,只需要常量级的额外空间。代码实现相对简单,易于理解和编码。3.希尔排序的缺点。

2024-05-28 21:47:08 3179 57

原创 数据结构的直接插入排序(C语言版)

如果待排序数组基本有序,直接插入排序的效率会很高,但如果数组越乱,排序效率就会越低。假设前 i-1 个元素已经有序,现在要将第 i 个元素插入到前 i-1 个有序元素中,使得前 i 个元素也有序。维护数组中元素的相对顺序,即相等元素的相对位置不会改变。找到合适的位置后,将第 i 个元素插入到该位置,同时需要将位置之后的元素都向后移动一位。每次从未排序部分取出一个元素,将其插入到已排序部分的合适位置,使得已排序部分保持有序。对于部分有序的数组,直接插入排序的效率会很高,因为需要移动的元素较少。

2024-05-27 14:06:54 1446 35

原创 数据结构堆排序(c语言版)

在构建好堆之后,堆排序会进行反复的交换和调整操作,将堆顶元素(最大值或最小值)与堆的最后一个元素交换,然后缩小堆的规模。堆排序的优势是能够在一个数组上就地完成排序,不需要额外的空间。堆排序是一种原地排序算法,不需要额外的内存空间来辅助排序,而是直接在原数组上进行操作。大顶堆的根节点是数组中的最大值,小顶堆的根节点是数组中的最小值。堆排序的主要功能是对一个给定的数组进行升序或降序排序。大顶堆的特点是根节点的值大于或等于其左右子节点的值。堆排序的时间复杂度为O(nlogn),这使它成为高效的通用排序算法之一。

2024-05-18 21:23:27 1628 58

原创 数据结构的二叉树(c语言版)

查找:二叉搜索树(BST)是一种特殊的二叉树,它的左子节点的值小于等于父节点,右子节点的值大于等于父节点。通过比较节点的值,可以快速确定目标节点的位置,从而实现快速查找。二叉树的一个重要概念是根节点,它是树的起始节点,其他节点通过边与根节点相连。另外,每个节点除了子节点的连接外,还可以有一个指向父节点的连接,这样就形成了一个双向连接的二叉树。完全二叉树,除了最后一层之外,其他层的节点都必须是满的,并且最后一层的节点都靠左排列。二叉树的特点是每个节点最多有两个子节点,而且左子节点和右子节点的位置是固定的。

2024-05-13 10:24:53 1629 50

原创 数据结构的堆(c语言版)

array:一个指向整型数组的指针,用于存储堆中的元素。capacity:一个整数,表示堆的容量,即array数组的最大长度。size:一个整数,表示当前堆中的元素个数,即array数组中实际存储的元素数量。int* array;// 存储堆元素的数组// 堆的容量int size;// 堆中当前元素的个数} Heap;

2024-05-09 19:16:57 1816 38

原创 数据结构的队列(c语言版)

Queueelements:类型为int*的指针,用于存储队列中的元素。通常情况下,可以通过动态内存分配来为该指针分配足够的内存空间,以存储队列的元素。front:整型变量,表示队列头部的索引。它指向队列中的第一个元素。rear:整型变量,表示队列尾部的索引。它指向队列中最后一个元素。maxSize:整型变量,表示队列的最大容量。它用于限制队列中元素的数量,防止队列溢出。// 存储元素的数组int front;// 队列头部索引int rear;// 队列尾部索引// 队列的最大容量。

2024-05-02 15:29:34 1810 28

原创 数据结构中的栈(C语言版)

被移除的元素是最后一个入栈的元素,即栈顶元素。出栈操作会改变栈的结构,并返回被移除的元素。对于基于数组实现的栈,如果数组已满,即栈已满,该函数返回真;获取栈顶元素:获取栈顶的元素,但不对栈进行修改。如果栈中没有元素,即栈为空,该函数返回真;函数检查栈是否为空,如果为空,则打印错误信息并返回-1;函数检查栈是否为空,如果为空,则打印错误信息并返回-1;3.栈中的元素没有编号或索引,只有栈顶指针来指示栈的当前位置。1.元素的插入和删除操作只能在栈的一端进行,该端被称为栈顶。等于-1,表示栈为空,返回1;

2024-04-30 16:53:34 1496 15

原创 C语言实现双人贪吃蛇项目(基于控制台界面)

实现了双人贪吃蛇的基本功能。

2024-04-24 13:12:34 3505 43

原创 C语言的单链表

单链表是一种常见的数据结构,用于存储一系列的元素。它由一个节点的序列构成,每个节点包含一个数据元素和一个指向下一个节点的指针(或链接)。单链表中的节点按照顺序链接在一起,形成一个链式结构。

2024-04-15 20:17:52 1539 17

原创 通讯录项目(用c语言实现)

它是一种电子化的地址簿,用于记录和管理个人、机构或组织的联系方式,如姓名、电话号码、电子邮件地址和邮寄地址等。通讯录的目的是方便用户在需要时查找和联系他人。通讯录通常以列表或表格的形式呈现,每个条目代表一个联系人。用户可以根据联系人的姓名、公司、职位或其他标识符来组织和排序通讯录。随着技术的发展,通讯录也可以与其他应用程序、设备或云服务同步,以确保联系人信息的备份和共享。通讯录在个人生活和商业环境中都非常有用。个人可以使用通讯录存储家庭成员、朋友、同事和其他重要联系人的信息,以便随时与他们保持联系。

2024-04-12 15:08:46 1163 16

原创 C语言的顺序表详解

首先,定义了一个常量MAX_SIZE表示顺序表的最大容量,然后使用结构体SeqList定义了顺序表的结构,包括一个整型数组data用于存储元素,以及一个整型变量length表示当前顺序表中的元素个数。int length;} SeqList;

2024-04-11 13:31:36 1615 14

原创 C语言的编译和链接以及预处理详解

预定义符号:C语言中有一些预定义的符号,它们提供了一些常用的信息和功能。例如,__LINE__表示当前代码行号,__FILE__表示当前源文件名,__DATE__表示当前编译日期等。这些符号在预处理阶段被替换为相应的值。__FILE__ //进⾏编译的源⽂件__LINE__ //⽂件当前的⾏号__DATE__ //⽂件被编译的⽇期__TIME__ //⽂件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义#define定义常量:使用#define。

2024-04-02 21:44:59 1596 9

原创 C语言的文件操作

文件是计算机中存储数据的一种方式,它是一组按照特定格式组织的数据的集合。文件可以包含文本、图像、音频、视频等各种类型的数据。在计算机系统中,文件是存储在存储介质(如硬盘、固态硬盘、光盘等)上的一段连续或间断的数据。每个文件都有一个唯一的名称,用于在文件系统中进行标识和访问。文件可以用于多种目的,例如:存储和维护文本数据:文本文件包含可由文本编辑器打开和编辑的字符数据。这些文件通常用于存储配置信息、日志文件、源代码文件等。

2024-04-01 20:17:59 1057 4

原创 C语言的结构体详解

结构体的定义使用struct关键字,通常放在函数外部或全局作用域中。在上述示例中,我们定义了一个名为Personname(字符数组)、age(整数)和height(浮点数)。可以使用已定义的结构体创建变量,并对其进行初始化。在上述示例中,我们声明了两个结构体变量person1和person2,并对person2进行了初始化。使用点操作符()来访问结构体变量的成员。上述示例中,我们使用点操作符访问person2结构体变量的成员,并将它们打印出来。结构体作为函数参数:可以将结构体作为函数的参数传递。

2024-03-29 21:58:18 914 7

原创 C语言整数和浮点数在内存中的存储

C语言整数和浮点数在内存中的存储的简单介绍

2024-03-28 21:50:44 801 5

原创 库函数的模拟实现(详解)

strlen函数用于计算字符串的长度,即字符串中字符的个数,不包括字符串结尾的空字符 '\0'。它接受一个指向字符串开头的指针,并通过遍历字符串的每个字符来确定长度。它返回一个size_t类型的值,表示字符串的长度。

2024-03-27 22:06:46 894 4

原创 C语言的指针详解

对关于C语言的指针的详细介绍。

2024-03-20 20:49:11 1184 7

原创 扫雷(基础版)

扫雷是一款单人益智游戏,玩家需要通过翻开方块来避免触雷并揭示所有的非雷方块。以下是扫雷的基本规则:玩家的目标是揭示所有非雷方块,而不触雷。如果玩家成功地揭示了所有非雷方块,游戏胜利。

2023-12-05 17:53:05 552 12

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除