自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 最优二叉搜索树

满足以下1.如果左子树不为空,则左子树上的所有节点都小于根节点2.如果右子树不为空,则右子树上的所有节点都大于根节点3. 左右子树也为二叉搜索树。

2024-04-30 16:26:01 675

原创 动态规划及例题

动态规划算法通常用于其思想与分治法类似,将待求解的问题分成若干个子问题,先求出子问题,再根据子问题的解求出原来问题中的解,与分支法不同的是,。采用动态规划求解的问题通常有以下性质:1.最优化原理:问题的最优解中包含的。2.无后效性:即某阶段状态一旦确定,就不受该状态以后决策的影响,只与当前状态有关。3.有重叠子问题:子问题之间是不相互独立的,一个子问题在下一阶段的决策中可能被多次用到。(通常减少不必要的重复操作)

2024-04-23 19:09:36 727

原创 最长公共子序列(LCS)

区分子序列和子串子序列:给,也可以说从给定序列中选取几个元素的结果(有顺序)。子串:给定串中组成的子序列为该串的子串。举例: (最长公共子序列不唯一,但序列长度是相同的)

2024-04-19 21:11:21 909

原创 数据结构——二叉搜索树

所有根节点大于左子树的节点,小于右子树的节点的二叉树。

2024-04-13 18:40:40 945

原创 数据结构——二叉树

一棵二叉树是节点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵子树(左子树和右子树)的二叉树组成。特点: 每个节点最多有2个子节点二叉树的子树的顺序不能颠倒。

2024-04-11 14:33:20 1008

原创 顺序统计量

定义:将长度为 n 的数组按升序排序后,,称之为第 i 顺序统计量。则一个数组中的最小值是第1顺序统计量,最大值是第n顺序统计量,

2024-04-07 20:46:22 572

原创 计数排序,基数排序(线性非比较排序)

前面讲述了多种排序算法(冒泡,插入,快速排序,归并排序,堆排序),其中最慢的时间复杂度为,最快的时间复杂度为,上述五种排序算法均是通过进行的,可以得出,若排序算法是通过比较进行的,那么它最快的时间复杂度为。与此同时,可以采用线性的方法,将数据进行排序(非比较排序)。

2024-03-22 21:15:13 474

原创 优先队列(priority_queue)

优先队列是一种特殊的队列,除了具有队列的性质(先进先出,队列头出,队列尾入),还具有一个及其重要的性质:实现快速得到队列中的元素。使得优先队列有一定的顺序特点,例如排列 和排列。例:当优先队列为从大到小排列时,队列元素的头部始终保持数值最大,并且可以通过队尾插入数据,队首移出数据等操作,。上述过程,或者说优先队列的本质,其实就是,包含了,本质就是一个,同理,排列本质就是一个。

2024-03-18 14:48:26 960

原创 深入理解快速排序

快速排序是冒泡排序的一种改进算法,相比于冒泡排序效率更优。

2024-03-12 18:56:13 875

原创 矩阵乘法--Strassen算法

定义。

2024-03-11 20:36:50 598 2

原创 数据结构---堆

概念:一种有特殊用途的数据结构,用来在一组中查找最值。性质:1.堆是一个(除叶子节点外,每个节点都含有两个子节点)。2.堆中某个节点的值总是或其父节点的值存储方式:对于一个线性的一维数组,将其转化成完全二叉树。

2024-03-05 17:26:57 1374 3

原创 C语言--freopen()函数及其应用

C/C++重定向标准输入输出的库函数。重定向输入输出:把原本输入输出在控制台的字符,标准声明:参数说明:path:文件名,用于存储输入输出的文件名mode:文件打开形式(例如:读取 r (read),输出 w (write) )stream:文件,通常使用(具体指 stdin(标准输入流),stdout(标准输出流), stderr(标准错误流))

2024-03-04 20:52:27 741

原创 浅谈排序算法(冒泡,插入,归并)

比较,两两依次比较,最后一组数据结束时,数组。

2024-03-01 13:41:22 1095

原创 图论基础(一)

图论算法:图的基本概念

2024-02-27 15:22:51 1260 2

原创 程序设计基础——指针进阶

指针数组与二级指针

2024-02-26 18:48:40 1012

原创 数据结构—哈希表

哈希表(Hash Table):也叫散列表。是根据关键码值(Key Value)直接进行访问的数据结构。哈希表通过(键 key )和(映射函数 Hash(key) )计算出对应的(值 value),把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做(哈希函数(散列函数)),存放记录的数组叫做(哈希表(散列表))。关于哈希表,有两种操作:建立和查询 将键(key)通过哈希函数转化为 值(value)并存放在哈希表中 使用相同的哈希函数转化为 值(value)

2024-01-21 16:50:29 939 2

原创 二分算法

定义:二分查找算法也称折半搜索算法,在中查找某一的搜索算法。这种搜索算法每一次比较都使搜索范围缩小一半,时间复杂度是log(n)条件:①必须是②对某一查找。

2023-12-25 16:32:38 963

原创 DFS(深度优先搜索)

深度优先搜索算法(Depth First Search):是一种用于搜索树或图的算法,深度优先,就是说每次。

2023-12-22 17:07:50 396

原创 广度优先搜索(BFS)

宽度优先搜索算法(又称广度优先搜索)属于一种盲目搜寻法,目的。它并不考虑结果的可能位置,,直到找到结果为止。BFS利用的数据结构是,是一个。

2023-12-18 16:57:46 327 1

原创 搜索算法 暴力 与 回溯

实际上是一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就返回,尝试别的路径。暴搜就是通过不断的搜索,依次判断,求得最终的答案,因此,暴搜的时间复杂度通常很大,相应的数据范围较小。暴搜本质还是运用了递归的思想,重复调用自身函数求得答案。

2023-12-15 18:43:09 1046 1

原创 递归算法—汉诺塔问题

大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,任何时候,在,且。问应该如何操作?

2023-12-11 16:06:06 405 1

原创 递归算法

1.递归的难度不在于代码的复杂程度,递归总是通过简单的代码解决复杂的问题,针对于解决递归的问题,核心为寻找递归的关系式以及结束条件,就可以解决问题。2.对于递归的内涵,可以通过调试的方法(单步进入),探寻递归的本质2.

2023-12-11 14:46:17 925 1

原创 数据结构——双向链表 与 循环链表

指针域:front,next数据域:相关元素数据int num,id;}student;

2023-12-08 15:37:49 847

原创 数据结构——链表

链表:链表是一种物理上存储非连续,数据元素的逻辑顺序通过链接次序,数显线性存储结构。链表中的每一个元素称为一个节点,元素分为两部分:数据域、指针域数据域:通常表示节点所存储的相关数据,比如该节点的元素值等指针域:节点的连接则是通过指针进行,,以此找到下一个节点,由于每一个指针不断存储着下一个节点的地址,所以这些连接构成了线性表——链表。注意:每一个节点的定义(malloc)。原因:malloc 是为指针指向的地方开内存,如果指针没有开辟空间,没有首地址,对指针进行操作时会发生运行错误。

2023-12-01 17:00:44 385 1

原创 队列应用之 bfs(广度优先搜索)

关于bfs广度优先搜索,移步:这里讲述队列的应用,使用 bfs (广度优先搜索)

2023-11-25 23:14:59 426

原创 数据结构--队列(queue)

队列是只允许操作,的线性表。是一个的数据结构。与区别允许删除的一端,队头。允许插入的一端。空队列:不含任何元素的空表。

2023-11-20 17:23:46 42 1

原创 括号匹配习题——栈

输入一串字符串(长度不超过50),其中有普通的字符与括号组成(包括‘(’、‘)’、‘[’,']'),要求验证括号是否匹配,如果匹配则输出0、否则输出1。当一对括号匹配后,括号内的字符进行出栈操作,当进行到最后时,若最后的字符串中。的匹配,再关于其是否括号匹配,就是字符串中的 括号是否。注意不要有不必要的输出,比如“请输入字符串”。’ (左括号),记录下来,寻找对应的 ''(右括号),则直接不匹配,输出 1。' (左括号) 而直接遇到了 '首先对于括号的匹配是其对于的。则为括号匹配,否则不匹配。

2023-11-17 16:29:51 35

原创 数据结构——栈

栈(stack)是一种只允许在一端插入或删除操作的线性表,仅限于对表尾(称为栈顶),另一端被称为栈尾。(根据图示可以看出,栈的元素总是,被称为后进先出的线性表)空栈:不含任何元素的空表。

2023-11-13 17:18:08 34

原创 结构体

先定义结构,再用结构定义结构变量//格式// 分别定义结构体中的年龄,学号,成绩// 学生的姓名//注意分号,此时也是一条语句/*struct 结构名 结构变量名*/注意 :结构体中可以定义任何数据类型(int double float等),数组类型亦可,此外结构体中还可以再次定义结构体同时定义结构和结构变量// 分别定义结构体中的年龄,学号,成绩// 学生的姓名}st1;省略结构名,直接定义结构变量struct {// 分别定义结构体中的年龄,学号,成绩// 学生的姓名。

2023-11-06 17:12:28 24 1

原创 习题:换硬币

每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。不足之处: dfs暴搜太消耗时间,在回溯过程中可能出现重复累计(例如 9元 可分为 5-2-1-1 或者 5-1-1-2 在暴搜过程中会计算出两种换法) 不合理。一般正面解题思路:将该零钱数拆成5,2,1分硬币,第一思路可能会想到dfs深搜,将零钱总数不断的分别减去5,2,1,然后再回溯,当恰好减至0时算入一种换法。本题采用三重循环(数据过大会超时)

2023-10-30 15:53:17 54 1

原创 动态内存分配

就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。 动态内存分配不像数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小。静态内存:都在栈区分配的空间,分配的空间都是固定的大小 例如对数组定义 : int a[101]; (定义一个长度为101的整型数组)动态内存:分配空间从堆中申请,不是栈区c语言编译程序占用内存分为以下部分①代码区:存放程序的二进制代码②常量区:所有常量(常量字符串)存放在常量区,程序结束后由操

2023-10-25 10:41:50 27 1

原创 程序设计基础——指针

取地址运算符&:单目运算符&是用来取操作对象的地址。例:&i 为取变量 i 的地址。对于常量表达式、寄存器变量不能取地址(因为它们存储在存储器中,没有地址)。指针运算符*(间接寻址符):与&为逆运算,作用是通过操作对象的地址,获取存储的内容。例:x = &i,x 为 i 的地址,*x 则为通过 i 的地址,获取 i 的内容。指针声明符 *在定义指针变量时被使用,说明定义的那个变量是指针。通常格式:数据类型 *指针变量名;// 定义一个数据类型为int型,变量名为p的指针char *cp;

2023-10-13 17:15:31 49

原创 快速排序 内容详解

虽然快排可以调用函数,但还是需要了解它的本质详解快速排序之所以比冒泡排序快,是因为其减少交换次数,通过更优的交换方法,达到减少时间的消耗,冒泡排序的时间复杂度在,而快速排序的时间复杂度在数据范围在内不会超时。

2023-10-06 15:10:58 34 1

原创 C语言与C++ 快速排序 调用库函数的不同写法

通常我们会调用 库函数 #include 直接可以通过一步操作进行快速排序(时间复杂度为。

2023-09-25 16:39:27 73 1

原创 关于sprintf,fprintf,strstr,strchr函数的使用

关于这四个函数 最常用的应该是1.3.4sprintf 主要功能:进行字符串的打印(将整型转化为字符)or进行字符串的连接fprintf 主要功能:将结果打印在文档里 (不常用)strstr  主要功能:进行字符串之间的查找  (注意查找结果的储存)strchr 主要功能:字符在字符串中的查找。

2023-09-24 16:00:00 190 1

原创 关于VScode 使用system查看输出端注意点

为了能在VScode中查看输出端,我们总是要在。这是因为没有调用 system相关的函数。调用system函数 需要的头文件。这样就不会报错 并且可以查看输出端了。

2023-09-24 09:49:50 107 1

原创 C语言 (持续更新中)

关于字符数组的实际长度 可以用 strlen() 函数直接得出字符数组的长度 s[strlen(s)]='\0' 换行字符(不算做字符长度) 需要调用函数头文件。a[maxn][maxn] 以二维形式存储 其中有maxn*maxn 个元素 (第一维和第二维可以不相等)字符数组:char ch[maxn] 存储字符 (可以以整型输出(涉及强制转换) 对应字符的ASCII码)a[maxn] 表示有maxn个元素存储在a数组中,切记数组下标从0开始,直到maxn-1。

2023-09-20 23:27:15 48

空空如也

空空如也

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

TA关注的人

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