自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 4-15记录(冒泡排序,快速选择排序)

简单选择排序的实质就是最后一个和第一个比较,小,就换位置,然后继续用最后一个数字和第二个比较,以此类推。但是算法不稳定,本来下划线的2在后面,但是经过算法后去了前面。

2025-04-15 21:02:28 131

原创 关于非递归算法和层序遍历

层序遍历:这个听的王道,简而言之就是用队列来实现,从左往右同级扫描,然后取出一个节点的同时,把他的子节点放入队列,直至队列为空。非递归算法,这就是用栈来实现,

2025-04-12 18:18:49 197

原创 4-10记录(

带哨兵的作用,把0的位置空出来,49>38,就先把38放到哨兵位然后把49放进原先38的格子里,然后把哨兵位的38后移一位。就算有两个49也要按照先后顺序放,即把比下划线的49大的数字往后移。

2025-04-10 20:45:54 152

原创 4-9记录(散列查找收尾及排序开头)

不需要把数据删除,只需要标记“已删除”即可。往右移就是加一,往左就是减一。

2025-04-09 15:07:03 73

原创 4-8记录(散列表四种构造及拉链法)

取不大于key最大值的最大质数,避免超出地址范围。

2025-04-08 13:20:44 96

原创 4-7记录(B+树查找及散列表)

如果查找9,从15往下遍历了3 9 后,找到9,但是还是得继续往下遍历6 8 9,如果只是在分支节点中找到想要的数,查找并没有结束,必须找到叶子节点下的记录。遍历失败过程:7<15,往下,7>3 并且<9,遍历下一层,7>6并且<8但是没有找到,查找失败。叶子结点在B树中指向最下一层(上层叫终端结点),在B+树中指向倒数第二层(上层叫分支结点),也可以通过指针p在最下一层进行顺序查找,遍历了1 3 6 8 后指向9,查找成功。必须找到最下面一层结点才算一次完整的查找。

2025-04-07 08:51:27 203

原创 4-6记录(B树)

借左子树,92的前驱是88,88的前驱是87,87是孩子去顶替88,88放在92前面。兄弟也不够借的时候,把父亲拉下来和左右子树一起合并,周而复始知道满足B树的合法特征。对于25,25的后继就是70,25后继的后继是71(中序遍历)只剩25,小于2,所以把父亲拉到25旁边,兄弟的70顶替父亲。转化成了前驱后继的删除。找左边右下或者右边左下。兄弟子树也不够借的情况。

2025-04-06 20:43:09 257

原创 4-3记录(B树)

如果要加的时候已经满了,就把中间的提到上一层当父节点,左右分开当子树。王道ppt写的是[ ]向上取整的意思。n个关键字必有n+1个失败结点。

2025-04-03 21:32:48 138

原创 4-2记录(红黑树)

红黑树。

2025-04-02 22:14:58 76

原创 4-1记录(查找方法和平衡二叉树)

关于为什么是两个n:看了豆包但是不太懂,大致意思就是说比结点小的数到左边进行对比,比结点大的数去右边进行对比,简单的将上图左右划一刀斜线,正好比较2n次。成功的ASL和失败的ASL算法不太一样,失败就是遍历所有,答案是固定的,成功的概率是不一定的,从第一个到最后一个都有可能。由此,折半查找比顺序查找时间复杂度少,但并不是谁一定比谁更优秀。折半查找失败的标志是,low指的比high指的位序大。让要删除的结点的右子树的左孩子顶替这个位置。上面说的是成功的和失败的平均查找长度。顺序查找的时间复杂度就是O(n)

2025-04-01 20:41:05 188

原创 3-31记录(行主序,列主序回顾,KMP的next数组以及中缀转后缀)

对于A[i][j],假设数组维度为,基地址为Base,元素大小为sizeA[1][1]在A[2][3]。i*列数对于A[i][j]A[1][1]在A[2][3]。j*行数。

2025-03-31 21:52:10 198

原创 3-29记录(优先遍历,最短路径,AOV,拓扑排序,最短时间)

对于深度优先和广度优先来说,调用几次BFS/DFS取决于从这个点开始遍历的时候,这个点有没有去其他任何一个点的路径。从画错号的节点里面找距离最短的,然后从这个结点出发修改其他错号节点的距离和前驱。按照迪杰斯特拉算法最短距离是7,但是事实是10-5=5,所以不适用于负权图。当走完一遍后,检查有没有false的节点,相当于寻找非连通图的其他部分。d[]是最短路径长度,从谁出发的就有谁的路径长度加一。Dijkstra算法(迪杰斯特拉算法)path[]记录前驱节点,从谁出发的。true表示访问过了,所以就跳过。

2025-03-29 18:57:16 181

原创 3-27记录(图和图的存储)

所有节点 入度之和等于出度之和且数值上等于弧。生成子图:包含所有顶点但是边是边集的子边。有向图:某节点:出度+入度=度。无向图:节点个数=度*2。有向完全图中,n个顶点。

2025-03-27 07:43:03 135

原创 3-26记录(并查集)

2025-03-27 06:48:09 96

原创 3-26记录(树的存储结构及树,森林,二叉树的转换)

双亲表示法优点找 父节点很方便 缺点:找孩子不方便,需要遍历。因此适用于找父节点多 找孩子少的情景,比如并查集。树的先根遍历序列和这棵树的二叉树的先序遍历相同。上述几幅图也可以转化成二叉树再进行相对应的遍历。优点:找孩子很方便,因为直接通过链表就能找到。适用于找孩子比找父节点多的情节。缺点:找父节点很不方便。

2025-03-26 14:45:29 187

原创 3-24(由遍历序列构造二叉树及线索二叉树)

线索二叉树

2025-03-24 18:56:34 134

原创 3-17记录(树的顺序存储和链式存储即先后中序遍历算法)

2025-03-17 12:57:49 67

原创 3-15记录(树)

完全二叉树是在满二叉树的基础上删去从大到小的编号的结点,不能留下15删去14。

2025-03-15 20:56:46 89

原创 3-14记录(BF算法,KMP算法)

设主串长度为n,模式串长度为m,时间复杂度最坏O(n)=(n-m+1)*m=mn。

2025-03-15 19:39:01 188

原创 3-10记录(串)

比的不是ascii,谁在字母表中出现的早谁最小。

2025-03-10 20:58:54 121

原创 3-10记录(前缀中缀后缀互相转化及计算方法以及特殊矩阵压缩存储)

根据上述图片,数组大小该设置成n*(n+1)/2,所以最后一个数组元素下标应该是n*(n+1)/2-1。策略:只存储下三角和主对角线,按照行优先原则将各个元素存在一维数组。存储策略:按照行优先或者列有优先只存储带状部分。元素移到一维数组,并在最后一个位置存储常量c。aij之前的行有多少个元素。

2025-03-10 20:04:00 126

原创 3-5记录

在上述代码中,想要判断队列是否为空,只需要判断front和rear是否指向同一个节点,也可以通过判断头结点的next指针是否指向NULL。栈的应用,括号匹配问题。

2025-03-07 12:51:20 125

原创 3-4记录(顺序栈和顺序队列增删改查)

每一次出队的都是front指针所指向的元素,并且队头指针会每次往后移一位,当队头指针和队尾指针再次指向同一个位置的时候此时就说明这个队列已经被取空了。同理,如果上述两句顺序颠倒,简化后的代码为x=S.data[--S.top];当栈中没有元素的时候,top栈顶指针为-1,因此可以通过这个来判断栈是否为空。如果上述两句顺序颠倒,简化后的代码则变为S.data[S.top++]=x;同时判断栈满的条件也不一样,在这种情况下栈满的条件为top==MaxSize。//声明栈时分配内存。

2025-03-04 21:26:03 232

原创 2-27记录

顺序存储结构可以通过变量length来求表长,定位操作也可以直接索引来查找,时间复杂度为O(1),链式存储求表长需要遍历整个链表,时间复杂度为O(n),定位操作也需要遍历整个链表,时间复杂度是O(n)。顺序存储的内存一开始是分配好的,想要改变需要重新分配内存并且复制数据,链式存储可以动态分配,不需要连续的内存空间,所以顺序存储在存储上不够灵活。由于数据存储在连续的内存中,可以通过索引直接访问任意位置的元素,可以随机存取,链式存储无法随机存取,只能遍历。,实现创建一个顺序表,并实现打印顺序表的功能。

2025-02-27 20:28:40 474

原创 2-26记录

1.数据结构的逻辑结构被形式化地定义为一个二元组(D,S),其中D是(① )的有限集合,S是D上( ② )的有限集合。数据元素;关系2.以下说法正确的是( )A数据项是数据最小单位B数据元素是数据基本单位C数据元素的集合3.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储( D )。4.算法的时间复杂度取决于( D )。A. 问题的规模B. 待处理数据的初态C. 计算机的配置D. A和B5.

2025-02-26 20:54:05 786

原创 2-25记录

按最坏情况考虑,第一趟要进行n次排序,第二趟进行n-1次排序,直到最后一趟只需要一次排序。冒泡排序法只需要一个tmp来交换两个数,所以空间复杂度为O(1)1)从内循环到外循环写,从右往左写,从右往左脱去。动态开辟n+1个内存,O(n+1)=O(n)2 见到for 求和(方法:1 见到while循环设t次求解。折纸,一半再一半,逐渐缩小查找范围。递归调用n次,O(n)

2025-02-25 21:24:17 158

原创 2-22记录

如果带头结点,要判断双链表是否为空 ,只需要判断这个头结点的next指针是否等于NULL。

2025-02-23 21:20:50 97

原创 2-21记录

是一个常见的初始化语句,表示将指针。2.每次娶一个数据元素插入到表头/表尾。是链表的起始节点,它的类型是。单链表不带头结点情况按位序插入。

2025-02-22 10:25:19 119

原创 2-20记录

倒数二三行顺序不能颠倒,如果颠倒后s指向的结点是自己,数据丢失。1.带头结点(按位序插入 )注意:头结点是不存储数据的。

2025-02-20 21:47:30 176

原创 2-19记录

*顺序表删除数据,必须先设置一个int e=-1;将要删除的数据存到e中,数据并没有消失。2.顺序表插入:必须先将最后一个数据先后移,从后往前(for循环中--)3.顺序表删除:必须先将前面的数往前移,从前往后(for循环中++)用bool类型返回false /true提高代码健壮性。1.顺序表先声明后初始化。

2025-02-19 19:36:19 143

原创 upload靶场通关

方法二:当php处理文件或路径的时候,遇到url形式的%00将其转化为一个空字节,则百分号00后面的就不能被接收,那么抓包时将后缀加上%00把后面数据截断再上传就可以了(十二关十三关)十四关:图片马创建,将一句话木马与图片放入同一文件夹下融合,融合方法:在文件夹上方打开cmd输入copy san.png/b+muma.php/a生成图片马。第十关:双写后缀绕过。第二关:先上传php文件显示失败,按照第一关方法失败,再次上传,抓包,改名image/png即可。将此文件上传后再次上传php文件,上传成功。

2024-11-03 00:03:39 372

原创 php中创建站点并且输出hello world

1. PHP 支持多种数据类型,包括整数( integer )、浮点数( float / double )、字符串( string )、布尔值( boolean )、数组( array )、对象( object )等。1. 变量以 $ 符号开头,变量名由字母、数字和下划线组成,但不能以数字开头。- `echo` 可以输出一个或多个字符串,速度比 `print` 稍快。- `print` 只能输出一个字符串,并始终返回值 为`1`。1. 使用 `echo` 或 `print` 语句输出内容。

2024-11-01 13:04:57 979

php创建helloworld及其中遇到的问题以及php基本语法

php创建helloworld及其中遇到的问题以及php基本语法

2024-10-27

空空如也

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

TA关注的人

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