自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【数据结构初阶】--- 归并排序

用栈模拟的过程中,试想一下,要让左右区间有序,所以先压右区间,再压左区间,然后要弹出栈顶元素,也就是左区间,再将这个区间的右区间、左区间压入栈中,以此类推,在过程中是没有机会进行归并操作的。快排的非递归可以用栈模拟递归的过程,每次弹出区间的两个边界,从这个区间固定一个值的位置,再压入这个值的左右两个区间,这样的过程实际上模拟的是递归的前序遍历,先将本层的事做完,然后去遍历左右区间。由于每次都是将区间平分成两个区间,让左区间有序,让右区间有序,再进行归并,类似递归的过程类似二叉树的结构,因此,

2024-06-26 22:15:39 763

原创 【数据结构初阶】--- 快速排序

极端情况下,这个范围里的值刚好是升序的,right先走,一直找小,找不到,来到了left的位置,依然没找到,所以right继续走,走到了left前面的位置,此时right就已经越界,Swap(&a[left],&a[right])时就会非法访问。在当前范围中选取左边界,中间和右边界三个数,比较大小,将中间的值作为key,与左边界的值进行交换,然后再进行固定key的操作。每次固定好一个数的位置后,去左区间固定一个数,右区间固定一个数,以此类推,直到要固定数的范围只剩一个数或范围不存在就停止。

2024-06-25 19:44:04 922

原创 【数据结构初阶】--- 堆的应用:topk

接下来我来讲解topk是什么把前k个数建成小堆后面N-k个数,依次比较,如果比堆顶数据大,就替换他进堆最后这个小堆的值就是最大的前k个思路:我想要在这些数据中找到前十个最大的数,那我就先向内存中开辟十个数的空间,再读取前十个数(文件中最前面的十个数),同时将这是个数构建成一个小堆,之后从文件中每读取一个数据都与堆顶元素比较,如果大于堆顶元素,就用当前读取到的数覆盖这个堆顶元素,再进行向下调整;如果小于对顶元素那就读下一个数据,一直重复到结束,最终,小堆中的是个元素就是所有数据中最大的十个数。

2024-06-17 19:34:53 808

原创 【数据结构初阶】--- 堆

堆其实就是个完全二叉树堆虽然是个完全二叉树,但它是为了服务数组实现高效排序,因此我们就用数组来实现堆int size;//数组的有效存储个数//数组的容量}Heap;

2024-06-17 19:33:43 1786

原创 【数据结构初阶】--- 栈和队列

说明:top:是指向栈顶的位置,还是栈顶的下一个位置,在初始化讨论capacity:表示栈的容量,因为是用顺序表实现,入栈的时候也需要判断是否现有元素个数是否达到容量arr:就是个指向数组的指针int top;}ST;从队的一头插入元素,另一头弹出元素用链表实现队列,那么就需要用到链表的这个结构体队列想要入栈,是尾插,那么总不能每次插入一次就将链表遍历一遍寻找尾结点,所以,我们需要一个指针tail去记录尾结点。

2024-06-14 22:15:35 970 1

原创 【数据结构初阶】--- 双链表

初始化的时候我们就要创建一个哨兵位,对这个哨兵位进行初始化,哨兵位的prev和next指针都指向自己,里面的data实际上用不上,可以赋值也可以不管,最后返回哨兵位的地址,函数外面实际早已经创建好一个头指针,用来存放这个哨兵位的地址。申请两个指针,一个指针head指向当前的头结点,一个指针head_next指向头节点的下一个节点(即将成为新的头结点),在进行头删操作会方便些,而且代码的可读性很好。和头插思路一样,申请一个临时指针指向尾结点,方便修改哨兵位、新节点、老的尾结点(插入前的尾结点)的指针指向。

2024-06-14 18:27:29 920 1

原创 【数据结构初阶】 --- 单链表

这一节,我所讲的知识都是基于单链表//结点中存储数据的类型//结点中要存储的数据//结点中指向下一个结点的指针}SLTNode;先看这张图:与开头的那张区别就在于头指针phead,这是一个指针变量,用来存放第一个结点的地址,利用该指针就可以依次访问或操作节点中的数据接下来初始化一个指向结点的头指针:(这里是头指针,不是头结点)

2024-06-11 22:47:25 1765

原创 【数据结构初阶】--- 顺序表

动态顺序表详解以及完整代码

2024-06-07 22:35:23 644

原创 【C语言进阶】--- 结构体

结构体、柔性数组等详解

2024-06-04 19:06:07 990

原创 【C语言进阶】--- 文件操作

文件操作详解

2024-06-03 22:10:57 774 1

原创 【C语言进阶】--- 动态内存管理

动态内存管理函数和使用时的常见错误

2024-06-02 22:35:13 426

原创 【C语言进阶】--- 字符串函数与内存函数

应用并模拟实现函数功能

2024-06-01 21:28:49 824 1

原创 【C语言进阶】--- 指针详解 3.0

指针进阶版,超详细

2024-05-31 21:22:40 2234 1

原创 【C语言进阶】--- 数据在内存中的存储方式

C语言进阶部分

2024-05-29 22:14:12 931

原创 【C语言初阶】--- 指针详解 2.0

关于指针的详细讲解,从认识指针到使用指针

2024-05-28 17:50:25 920

原创 【C语言初阶】--- 操作符详解

需要认真理解的操作符

2024-05-27 21:41:15 317

原创 【C语言初阶】--- 井字棋游戏代码实现

井字棋游戏的整体思路与代码实现

2024-05-26 22:38:29 667

原创 【C语言初阶】--- 数组名与数组传参

数组名怎么理解?数组传参是怎么回事?

2024-05-25 21:42:07 194 1

原创 【C语言初阶】--- 函数与递归

函数中的传值与传值的区别,递归代练

2024-05-24 22:45:39 309 1

原创 【C语言初阶】--- 训练篇

C语言必做题,一定要掌握!!!!!

2024-05-23 22:44:31 210 1

原创 【C语言初阶】--- 认识指针1.0

从内存出发了解指针深层原理

2024-05-22 23:29:51 378 1

原创 【C语言初阶】--- getchar函数和putchar函数

getchar函数和putchar函数讲解及应用场景

2024-05-22 23:26:07 356 1

原创 【C语言初阶】--- 初见1.3

常量、static关键字、typedef关键字、#define和宏

2024-05-21 22:03:26 286

原创 【C语言初阶】--- 初见1.2

这节学习C语言数据类型和变量。

2024-05-20 21:53:25 296

原创 【C语言初阶】--- 初见1.1

以下是在学习c语言语法前需要了解的知识。0基础和有基础的码农们都可安心食用

2024-05-20 20:44:04 303

数据结构中常见的8种排序算法,超详细

常见的冒泡、插入、希尔、选择、堆排、快排、归并、计数排序 关于堆排中的向上调整算法、向下调整算法以及如何建堆(建大堆、建小堆) 快排的递归法、非递归法;递归法中又分三种方法,以及堆递归法的优化 归并排序的递归法、非递归法;非递归法中遇到越界问题的两种解决方案;递归法的优化

2024-06-26

大作业.zip

大作业.zip

2023-06-13

空空如也

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

TA关注的人

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