摘要: 目录直接选择排序描述选择排序的缺点:算法步骤代码实现 直接选择排序 描述 选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了。 选择排序的缺点: 效率低下:选择排序的时间复杂度始终是 𝑂(� 阅读全文
posted @ 2024-08-06 18:02 HJfjfK 阅读(31) 评论(0) 推荐(1) 编辑
摘要: 目录冒泡排序描述冒泡排序的缺点:什么时候最快什么时候最慢特点评价:代码实现 冒泡排序 描述 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经 阅读全文
posted @ 2024-08-06 17:01 HJfjfK 阅读(64) 评论(0) 推荐(1) 编辑
摘要: 目录插入排序描述应用分析时间复杂度空间复杂度算法步骤代码实现 插入排序 描述 插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外 阅读全文
posted @ 2024-08-06 16:00 HJfjfK 阅读(69) 评论(0) 推荐(1) 编辑
摘要: 队列 队列的概念 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出的特点FIFO(First In First Out) 入队:进行插入操作的一端称为队尾 出队:进行删除操作的一端称为队头 链实栈代码实现 Ququq.h #pragma once #defi 阅读全文
posted @ 2024-08-06 13:05 HJfjfK 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 栈 栈的概念 一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。 出栈:栈的删除操作叫做出栈。出 阅读全文
posted @ 2024-08-06 12:04 HJfjfK 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 目录队列队列的概念链实栈代码实现Ququq.hQueue.c 队列 队列的概念 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出的特点FIFO(First In First Out) 入队:进行插入操作的一端称为队尾 出队:进行删除操作的一端称为队头 链实栈 阅读全文
posted @ 2024-08-06 11:03 HJfjfK 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 目录栈栈的概念顺序栈代码实现Stack.hStack.c 栈 栈的概念 一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈:栈的插入操作叫做进栈/ 阅读全文
posted @ 2024-08-06 10:02 HJfjfK 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 目录顺序表概念代码实现动态顺序表SeqLish.hSeqList.c线性表区分 顺序表 概念 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存 储。在数组上完成数据的增删查改。 顺序表一般可以分为: 静态顺序表:使用定长数组存储元素。 动态顺序表:使用动态开辟的数 阅读全文
posted @ 2024-08-06 09:01 HJfjfK 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 目录链表链表的概念链表的分类代码实现无头单向非循环链表SingleLink.hSingleLink.c带头双向循环链表DoubleLink.hDoubleLink.cnull 链表 链表的概念 链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。 阅读全文
posted @ 2024-08-06 08:00 HJfjfK 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 目录一、树概念及结构树的概念树的相关概念树的表示二、二叉树概念及结构概念特殊的二叉树二叉树的性质二叉树的存储结构三、二叉树的顺序结构及实现二叉树的顺序结构堆的概念及结构堆的作用:堆的性质:计算孩子与父亲的下标关系1. 通过父亲得到左右孩子的下标2. 通过孩子找到父亲的下标如何得知自己是左孩子还是右孩 阅读全文
posted @ 2024-08-05 22:17 HJfjfK 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 内存拷贝 - memcpy 描述 C 库函数 void *memcpy(void *str1, const void *str2, size_t n) 从存储区 str2 复制 n 个字节到存储区 str1。 memcpy 是最快的内存到内存复制子程序。 它通常比必须扫描其所复制数据的strcpy 阅读全文
posted @ 2024-08-05 22:05 HJfjfK 阅读(121) 评论(0) 推荐(0) 编辑
摘要: # 字符串长度 - strlen() 描述 C 库函数 size_t strlen(const char *str) 计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。 声明 下面是 strlen() 函数的声明。 size_t strlen(const char *str) 参数 s 阅读全文
posted @ 2024-08-05 20:23 HJfjfK 阅读(58) 评论(0) 推荐(0) 编辑
摘要: strcat 描述 char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。 声明 下面是 strcat() 函数的声明。 char *strcat(char *dest, const char *src) 阅读全文
posted @ 2024-08-05 15:04 HJfjfK 阅读(42) 评论(0) 推荐(0) 编辑
摘要: memset() 描述 C 库函数 void *memset(void *str, int c, size_t n) 用于将一段内存区域设置为指定的值。 memset() 函数将指定的值 c 复制到 str 所指向的内存区域的前 n 个字节中,这可以用于将内存块清零或设置为特定值。 在一些情况下,需 阅读全文
posted @ 2024-08-05 14:03 HJfjfK 阅读(52) 评论(0) 推荐(0) 编辑
摘要: C 库函数 - strcmp() 描述 C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。 声明 下面是 strcmp() 函数的声明。 int strcmp(const cha 阅读全文
posted @ 2024-08-05 13:02 HJfjfK 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 内存移动 - memmove 也是拷贝函数,源字符串可能会被覆盖,但保证目标是想要的 描述 C 库函数 void *memmove(void *str1, const void *str2, size_t n) 从 str2 复制 n 个字符到 str1,但是在重叠内存块这方面,memmove() 阅读全文
posted @ 2024-08-05 10:00 HJfjfK 阅读(52) 评论(2) 推荐(0) 编辑
摘要: C 库函数 - strcpy() 目录C 库函数 - strcpy()描述声明参数返回值模拟实现1.02.03.04.05.0 描述 char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest。 需要注意的是如果目标数组 dest 阅读全文
posted @ 2024-08-05 08:00 HJfjfK 阅读(43) 评论(0) 推荐(0) 编辑
摘要: C 字符串查找 - strstr() 描述 C 库函数 char *strstr(const char *haystack, const char *needle) 在字符串 haystack 中查找第一次出现字符串 needle 的位置,不包含终止符 '\0'。 声明 下面是 strstr() 函 阅读全文
posted @ 2024-08-04 22:39 HJfjfK 阅读(37) 评论(0) 推荐(0) 编辑
摘要: strcat 描述 char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。 声明 下面是 strcat() 函数的声明。 char *strcat(char *dest, const char *src) 阅读全文
posted @ 2024-08-04 17:26 HJfjfK 阅读(57) 评论(2) 推荐(0) 编辑
摘要: 目录位段位段的介绍位段使用示例:位段的内存分配Example内存分配解析:位段的跨平台问题 位段 位段的介绍 位段(二进制位):就是按位存储 位段(bit-field)是C语言中的一种特殊数据类型,它允许将一个字节分成几个部分,并为每个部分指定特定的位数,以便在内存中存储和访问这些部分。 其中位段相 阅读全文
posted @ 2024-08-04 17:01 HJfjfK 阅读(226) 评论(0) 推荐(0) 编辑