自定义博客皮肤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)
  • 收藏
  • 关注

原创 n层满二叉树搜索的时间复杂度和空间复杂度

BFS 在最坏情况下需要存储当前层的所有节点。对于满二叉树,第 nnn 层有 2n−12^{n-1}2n−1 个节点,所以下一层的空间开销最大为。:DFS 在最坏情况下需要使用递归栈来存储树的节点,栈的最大深度是树的高度,即 nnn(因为是满二叉树)。:每个节点都必须被访问一次。对于一个满二叉树,总共有 2n−12^n - 12n−1 个节点。但不管是哪种方法,搜索的时间复杂度通常与树的节点数成正比。:同样,BFS也需要访问每个节点一次,所以时间复杂度同样是。空间复杂度与树的层数及搜索时的存储结构有关。

2024-11-05 19:14:38 422

原创 机器字长、指令字长、存储字长之间的关系

为了提高存储和访问效率,存储字长通常等于或大于机器字长。当存储字长与机器字长相等时,处理器可以在一个内存周期内完成对一个完整机器字的读取或写入。:指令字长与存储字长之间的关系通常与指令格式有关。如果指令格式固定,指令字长可能与存储字长一致或成整数倍,这样可以简化指令的存取和解码。:指令字长通常是机器字长的倍数或其倍数的部分。在某些计算机中,指令长度可以是多个机器字长度的组合。这意味着一条指令可能包含多个机器字。

2024-08-29 20:18:40 1055

原创 随机存取和随机查找

指的是在计算机存储器或数据结构中,不论数据的位置如何,均可以在相同时间内直接访问任何一个数据项的能力。随机存取允许更快速、灵活的读取和写入操作,是现代计算机内存(如RAM)和许多数据结构(如数组)的一个重要特性。在计算机科学中,这个术语可以与随机存取相关联。例如,在一个数组或哈希表中,随机查找指的是通过直接引用某个索引或键值来找到对应的数据项,而不必遍历整个数据结构。随机查找的效率通常较高,特别是在支持随机存取的数据结构中,因为它允许在常数时间内(即 O(1) 时间复杂度)直接访问所需的元素。

2024-08-18 19:52:24 824

原创 拓扑排序,DFS,检测带环

【代码】拓扑排序,DFS,检测带环。

2024-08-10 18:14:09 191

原创 (逆)拓扑排序DFS实现

【代码】(逆)拓扑排序DFS实现。

2024-08-10 16:58:23 238

原创 拓扑排序算法实现

这是一道很经典的模板题。

2024-08-10 16:18:54 268

原创 BFS最短路径

需要的辅助数组太多了。

2024-08-09 19:37:00 175

原创 Floyd算法实现

因此如图,V0 V3需要一次find,V3 V4之间还需要一次find,因为不确定V3就是V4的前驱。path里的值是无法很方便的手算的,只能用代码来遍历,不是后一个点的前一个点。408只需要掌握手算A矩阵即可,这个可以肉眼法。而是AB两点之间的某一个点(无法肉眼确定)。就因为这个path矩阵!

2024-08-09 17:50:13 197

原创 Dijkstra算法求解最短路径 自写代码

参考文章如上,另外进行了一点改进。

2024-08-08 21:43:03 348

原创 Prim算法和Dijkstra算法有什么异同之处

Prim算法和Dijkstra算法都是经典的图算法,它们分别用于不同的图问题。

2024-08-08 16:59:31 854

原创 拓扑序列 浅介绍

拓扑序列(也称拓扑排序)是有向无环图(DAG, Directed Acyclic Graph)中顶点的一种线性排序,使得对于每一条有向边 u→vu \rightarrow vu→v,顶点 uuu 在排序中出现在顶点 vvv 之前。简而言之,拓扑排序保证了在图中的所有依赖关系都被满足。为了更直观地解释拓扑序列(拓扑排序),我们通过一个具体的例子来展示如何从有向无环图(DAG)中生成拓扑序列。

2024-08-08 15:33:08 504

原创 图的四种存储C++实现

【代码】图的四种存储C++实现。

2024-08-08 14:55:04 165

原创 malloc和new的用法

在C和C++编程中,malloc和new用于动态内存分配,但它们有一些关键的区别。malloc。

2024-08-05 22:13:11 451

原创 先序线索二叉树先序遍历

本人遇到了和该作者一样的问题,通过尝试用相同方式解决了死循环问题,但是本人能力不足,在看了该作者的解析才思索明白过来,简单说就是访问完根节点的左子树后,代码会回溯然后访问根节点的右子树,因此也同样要判断右孩子是否被线索化。不然就可能出现死循环。阿巴的,王道是真的捞啊,为啥这个细节就是没有提及呢?他们有实际自己实现代码吗?还是就理解一遍就开始教人了?难绷,浪费了好多时间在这上面。

2024-08-02 13:24:17 180

原创 线索二叉树的构建和正逆遍历

我只能说,学王道的课还是得加上自己研究。不可能完全靠听听就懂了。

2024-08-01 16:18:50 183

原创 如果给出层序、前序、后序,三个遍历的结果,能否唯一确定一棵二叉树?

给出二叉树的层序遍历、前序遍历和后序遍历,通常一棵二叉树。这是因为不同的二叉树可能会有相同的这些遍历结果。在某些特殊情况下,这些遍历结果可能会唯一确定一棵二叉树,但这种情况并不普遍。

2024-07-27 17:01:51 688 1

原创 如何理解稀疏矩阵压缩后失去了随机存取特性

随机存取(Random Access)是一种访问数据的方法,其中每个数据元素可以在恒定时间内(即 O(1) 时间复杂度)直接访问到。这意味着你可以通过一个简单的索引操作直接获取存储在特定位置的数据,而不需要依次查找或遍历。

2024-07-20 20:55:17 1693

原创 关于如何理解消除递归不一定需要使用栈

在大多数编程语言的实现中,每次递归调用都会在调用栈(call stack)上创建一个新的栈帧(stack frame),用于保存函数的参数、局部变量和返回地址。(Tail Recursion Optimization,TRO): 如果一个递归函数在最后一步只返回递归调用的结果,这种递归称为尾递归(tail recursion)。这种方法被称为“递归到迭代的转换”(recursion to iteration transformation),它将递归函数改写为一个使用显式栈的迭代过程。

2024-07-20 18:40:32 1182

原创 为什么有循环队列没有循环栈

栈的主要操作集中在栈顶,空间利用问题可以通过动态数组来解决,因此没有循环栈的必要。相比之下,队列的操作涉及数组的两端,通过循环队列的方式可以更高效地利用数组空间,解决普通队列存在的前部空间浪费问题。队列的首尾相连,当队列的尾部到达数组末尾时,下一次插入操作会从数组的开头开始。这样可以最大化地利用数组的空间,避免了普通队列因频繁出队操作导致前部空间浪费的问题。栈的操作主要包括入栈(push)和出栈(pop)。由于栈的操作只涉及栈顶元素,不存在像队列那样需要频繁移动元素的问题,因此没有必要引入循环栈的概念。

2024-07-19 17:25:42 245

原创 共享栈链栈顺序栈的栈的上溢和下溢问题

栈(Stack)是一种后进先出(LIFO,Last In First Out)的数据结构。根据存储方式的不同,栈可以分为顺序栈、链栈和共享栈。下面介绍这三种栈的上溢和下溢问题。

2024-07-19 17:22:44 989

原创 实现输入一个中缀算术表达式,通过转换成后缀表达式来计算结果

实现输入一个中缀算术表达式,通过转换成后缀表达式来计算结果。

2024-07-18 20:15:16 159

原创 typedef的用法介绍

typedef是C语言中的一个关键字,用于为现有的数据类型创建新的名字(类型别名)。这样可以使代码更加简洁易读,也可以方便地进行类型修改和维护。下面详细解释typedef的用法及其常见应用。

2024-07-11 16:24:10 476

原创 关于定义指针后,创建空间内存占用问题的解释

总结起来,无论指针指向什么类型的数据(包括基本数据类型和结构体),指针本身的大小只取决于系统的架构(32位或64位),而不取决于它指向的数据类型。在32位系统上,指针通常占用4个字节;在64位系统上,指针通常占用8个字节。指针的大小与它指向的数据类型无关。无论指针指向的数据类型是什么,在一个给定的系统中,指针的大小都是固定的,与数据类型无关。当然,这还可能受结构体内存对齐(padding)的影响,但这里先不考虑对齐问题。的大小与它指向的数据类型无关,只与系统架构有关。指向,但它的大小独立于指针。

2024-07-09 18:07:07 487

原创 Local Storage,一种客户端存储数据的机制

虽然学过jsp、javaweb、mysql之类的使用,但是不想用,太麻烦了,而且还引入了html、css、js以外的编程语言或数据库软件,因此想要找一个能直接用js实现的注册和登陆验证功能。如图,点击Application(应用),点击Local Storage,点击下列的网页,右边key和value即是保存的账号和密码。登录时,从本地存储中获取存储的密码进行验证,并根据验证结果显示相应的消息或跳转到主页面。这是一种在客户端存储数据的机制,允许网页在用户浏览器中以键值对的形式存储数据。

2024-06-02 19:55:21 474

原创 计网实验三 TCP拥塞控制编程实验

掌握TCP进行拥塞控制的四种算法:慢开始、拥塞避免、快重传、快恢复的工作原理;2. 编程实现拥塞控制算法。操作系统为Windows的计算机,安装有C、C++、Java、Python等编程工具。(1) 阅读互联网标准RFC5681文档。(2) 掌握RFC5681的四种拥塞控制方法工作原理。(3) 编程实现四种拥塞控制方法。要求:① 程序具备必要的输入提示、输出提示。② 程序输入:初始门限值、传输轮次。③ 根据用户输入的“发生超时”或“收到三次重复确认”时的传输轮次实施拥塞控制。

2024-05-19 13:05:09 732 1

原创 4133:垃圾炸弹,一直wrong,球大佬看看哪里错了?

球球大佬帮我看看代码哪里有问题,看了一小时没看出来,真的要爆炸了。

2024-02-07 16:51:25 508 1

原创 夏目友人帐的介绍网站,web前端开发的期末大作业,网页设计。

我在B站录制了完整的操作展示视频:【web前端期末大作业网页开发。夏目友人帐的动漫介绍网页。提前说明的是网页代码大部分都是自己敲出来的,但是也有小部分是直接参考的B站Up主山羊的前端小屋,如果up有意见请联系我删改!下面展示部分网页截图和代码。一共有7个主要页面和1个音乐页面。另外源代码的获取方式也放在B站里了,欢迎询问!

2023-11-01 14:45:34 400 2

原创 eclipse怎么xml无提示

eclipse怎么xml无提示

2023-09-30 22:08:05 494

原创 [NOIP2016]回文日期

[NOIP2016]回文日期

2023-09-20 11:40:37 164 1

原创 牛妹和01串

来源:牛客网。牛妹和01串

2023-09-20 11:34:30 133 1

原创 动物识别专家系统PYTHON

可以对得到的结论进行解释(比如:得到的结论是“信天翁”,程序可以解释之所以得到的结论是“信天翁”是因为具有“羽毛”和“善飞”这两个事实。这个是主要的py,其他的文件我都打包放在CSDN上了,欢迎下载!如果原作者看到这篇文章不爽或者觉得侵权,请一定要联系我,我马上删!建立一个动物识别系统的规则库,用以识别虎、豹、斑马、长颈鹿、企鹅、鸵鸟、信天翁等。能搜到这个文章的,估计你就是为了想找篇现成的系统抄抄了,我也废话不多说好叭。除了冲突消解我懒得搞了,其他的都实现了!条规则,规则和动物种类可增加)。

2023-05-01 21:21:47 2003 4

原创 L2-009 抢红包 分数 25

没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。输入第一行给出一个正整数N(≤104),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下:KN1​P1​⋯NK​PK​其中K(0≤K≤20)是发出去的红包个数,Ni​是抢到红包的人的编号,Pi​(>0)是其抢到的红包金额(以分为单位)。注意:对于同一个人发出的红包,每人最多只能抢1次,不能重复抢。按照收入金额从高到低的递减顺序输出每个人的编号和收入金额(

2022-07-13 13:35:56 169

原创 一个c语言的生日祝福

因为疫情什么都封了,只能想到了这种方式写个小小小程序给喜欢的人。希望早点结束疫情,早点见一面吧。

2022-04-29 23:31:41 27313 14

原创 【C++运算符重载】集合类实现(不要直接copy)

Description定义一个集合类,集合的大小是不确定的,需要使用指针数据成员, 重载运算符“+”,“*”,“-”实现集合的并、交、差运算,对赋值运算符进行重载,定义拷贝构造函数,重载流运算符实现集合的输入、输出。注意,假设A={1,3,5},B={1,5,9},两个集合的差运算A-B,是指从集合A中减去集合B的元素,上面集合A-B的结果是{3}类的定义如下:class settype{public:settype(); //构造函数,默认空集,n=0, set=NULL...

2022-04-28 11:33:50 959

原创 C - hdu 1022 栈

随着新学期的到来,伊格内修斯火车站现在非常繁忙。很多学生想乘火车回学校(因为伊格内修斯火车站的火车是世界上最快的)。但是问题来了,只有一条铁路所有的火车都停。所以所有的火车从一边进来,从另一边出来。对于这个问题,如果A车先进站,而B车在A车离开前进站,那么A车要等到B车离开后才能离开。下面的图片解决了这个问题。现在给你的问题是,车站里最多有9列火车,所有的火车都有一个ID(编号从1到n),火车按照顺序O1进站,你的任务是判断火车是否可以按照顺序O2出站。 输入包含几个测试用例。...

2022-04-18 22:01:36 225

原创 B - Vector-Erase

题目翻译:你会得到一个整数向量。然后,你会得到一些查询。对于第一个查询,将提供整数,它表示向量中的位置。向量中这个位置的值需要被擦除。下一个查询由整数组成,表示向量中位置的范围。在这个范围内的元素应予删除。第二个查询是在执行第一个查询后得到的更新后的向量上执行的。输入格式输入的第一行包含一个整数,下一行包含空格分隔的整数(基于1的索引)。第三行包含一个整数,表示应该从向量中删除的元素的位置。第四行包含两个整数,表示应该从包含a和不包含b的向量中删除的范围。...

2022-04-18 21:45:00 225

原创 A - Vector-Sort,向量,排序

说白了就是排序,看输出样例就知道。#include <iostream>#include<vector>#include<algorithm>//这个是sort的头文件using namespace std;int main(){ int n; cin >> n; vector<int >a; int x; for (int i = 0; i < n; i++) { ...

2022-04-18 17:34:59 314

语言是Python,交互设计是PYQT5 ,动物特征识别专家系统,人工智能实验

1.适用于大学生,不是大学生你下载这个干吗? 2.下载完,用pycharm打开,导入应有的包即可直接打开界面使用,不能用就是你的问题。 3.记得看注意事项的文档!!! 4.实现了增删查功能,改直接用删和增一起实现即可 5.如果你想要改界面的话,可以自己去找关于pyqt5的资料,以及如何转成.py文件。CSDN上都有。 6.另外一定要表明,本文件参考了版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/xiaotang_sama/article/details/84955884,原作者如果觉得侵权或者感觉不爽,请联系我,我一定删!!!原作者是大佬。 7.没啥要说的了好像。如果还有问题请参考我的那篇介绍文章吧!

2023-05-01

空空如也

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

TA关注的人

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