暑假学习总结
脆脆鲨.
栽一棵树最好的时间是十年前,其次是现在
展开
-
暑假学习总结
在暑假里 ,只努力过一小段时间,后来就堕落了在这还是不说我的想法了,想得多做得少。。学了并查集搜索,都学完了(因为在学校的时候没好好学,回家重新看的)字符串,也学了一点点(字典树和KMP)图论,也学了一点点(就了解了点基础知识)每样东西都是了解了一点皮毛,然后相对应的会刷一到两道题,所以本来学的就很浅,然后也不怎么刷题,导致当初学的,现在啥也不记得了。...原创 2021-09-18 21:50:21 · 74 阅读 · 0 评论 -
图论-拓扑排序(21.8.19)
概念:设A有最高优先级,BC优先级相等,D是最低优先级,表示为A->(B,C)->D,ABCD或ACBD这一序列就是就是拓扑序列。在一个有向图中找一个拓扑序列的过程称为拓扑排序。这个图必须是有向无环图(DAG)基本思想:1)从有向图中选一个无前驱(入度为0)的顶点 输出;2)将此顶点和以它为起点的弧删除;3)重复前两步,直到不存在无前驱的顶点;4)若此时输出的顶点数小于有向图中的顶点数,则说明有向图中存在回路,否则输出的顶点的顺序为一个拓扑序列;算法步骤:1、求所有顶点的入原创 2021-08-19 21:56:06 · 216 阅读 · 0 评论 -
字符串-KMP(21.8.11)
前缀表前缀: 包含首字母,不包含尾字母的所有子串后缀: 包含尾字母,不包含首字母的所有子串最长相等前后缀(aabaaf) :a 0aa 1aab 0aaba 1aabaa 2aabaaf 0则,前缀表为: 010120aabaaf012345则,需要跳到2的位置,从2的位置开始,继续匹配初始化处理前后缀不相同处理前后缀相同更新next 数组值i 后缀末尾位置,j前缀末尾位置void getnext(int next int s){j=0;next[0]=0;原创 2021-08-11 20:59:36 · 58 阅读 · 0 评论 -
字符串-字典树(21.8.9)
字典树作用:检索查询字符串、统计单词出现次数、字符串排序、前准匹配基本特征:1、按照公共前缀排序2、根节点不包含字符,除根结点以外的每个子节点都包含一个字符3、从根节点开始,路径上的字符连接成字符串4、每个结点的所有子节点包含的字符互不相同...原创 2021-08-11 21:01:44 · 56 阅读 · 0 评论 -
搜索-DFS(深搜)(21.8.5)
一、DFS和递归一般用递归来实现深度搜索一层下去,先找到最底层,一条路走到底,一直找到最低点,如果仍然没有目标状态,再回溯到上一层,取另一种情况再进行搜索。原创 2021-08-04 22:18:43 · 78 阅读 · 0 评论 -
图论-基础知识(21.8.3)
图:1、定义:图G由顶点集V和边集E组成,即由点和边连成了一张网图是一种非线性数据结构,即一个元素可以和多个元素相连接,反映了数据对象之间的任意关系2、有向图:边有方向,如甲图3、无向图:边无方向,如乙图4、生成子图:点不可少,边可少5、连通图:图G的任意两个顶点都是连通的6、连通分量:无向图的极大连通子图, 要求该子图既要保持图连通也要保持边数最多(该子图所有的边) ,如乙图,则ABCDEA这一子图就是连通分量,AE边不可以少若缺少AE边,也仍然是连通,但不包含所有边,保持了既连通又边数原创 2021-08-03 23:53:44 · 235 阅读 · 0 评论 -
七月份总结
暑假也放了半个月了,前一阵出去玩了几天,反正是抽空学了点习哈哈哈目前接触了一点数据结构里的并查集和二叉树(二叉树学了一半,太繁琐了先放放吧),还有搜索的广搜,平均两天就学一小块知识,然后再做几个题帮助理解这一块知识点我们小组里每个人平均分了六块知识点,夹杂着之前学过的,因为就算之前学过的书上也会有新的知识点,有的有必要去看看的就像昨天学的搜索里面的广搜,就多出来了八数码问题和A算法,A算法又涉及到启发式搜索,延伸的太多了会花费时间,因为还有很多其他的更重要一点的知识需要学,根据自己需要选择了,混个脸熟原创 2021-08-02 17:05:56 · 58 阅读 · 0 评论 -
搜索-BFS(广搜)(21.8.1)
搜索,就是列举所有情况,一种一种的列,但是在当前情况下又会分成好几个状态,还要继续列举,状态,每一个状态都会有一个可能解,从一个状态转移到另一个状态,进行搜索的进一步延伸,一、BFS和队列一般用队列来实现广搜找出所有的大情况,再把每种大情况的下一阶段找出,一层一层的寻找,广搜离不开队列,可以求最短路径例题1330:【例8.3】最少步数二、八数码问题和状态图搜索BFS搜索处理的对象换成“状态”,即状态图搜索问题1、八数码问题是典型的状态图搜索问题在3×3的棋盘上,摆上标有1至8的某一数字的八个原创 2021-08-02 00:00:20 · 116 阅读 · 0 评论 -
搜索-递归和排列和子集(21.7.30)
搜索学的不好,重新来递归关键在于找出递归定义和递归终止条件。步骤1.分析问题,寻找递归条件(找出大规模问题和小规模问题之间的关系)2.寻找边界,找出停止条件(先找出出口)3.设计函数,即数学公式4.如何调用递归(斐波那契要调用两次,而求阶乘只需要调用一次)全排列①(STL函数):sort(data,data+n);while(next_permutation(data,data+n))//把下一个排列数放在数组中{ for(int i=1;i<=n;i++) {原创 2021-07-31 10:34:45 · 65 阅读 · 0 评论 -
非常纯正的总结(21.7.28)
这几天偷偷出去玩了,没学习很久很久以前学到了二叉树的一些基础知识,就了解了书上说的遍历方法,原理基本上就是与链式存储相同,然后学到二叉搜索树实在进行不下去了基础知识是很重要,但是这样纯学知识作用不大,一定要做题才行,不然都搞不清哪是重点或者说该怎么用,之前老师上课都是稍微说一下知识点然后就是大量讲题,当然之前的知识比这些简单些也是一个原因二叉搜索树暂时不想进行了,想先做题,用到了再来学习然后就去找题做了,难的没能力,简单的又嫌太简单了,好像用不到新学的知识。那也只能做简单的,哎,眼高手低说的就是我,原创 2021-07-28 23:03:50 · 67 阅读 · 0 评论 -
数据结构-二叉树(21.7.22)
我们之前学过了数组和链表,各有优缺点,还互补二叉搜索树就既有链表的好处,也有数组的好处 ,好像用的最多的是二叉平衡树,有种特殊的二叉平衡树就是红黑树管他有没有用的,学了先一、基本概念1、每个结点最多有两棵子树,即二叉树不存在度大于2的结点。2、二叉树的子树有左右之分,其子树的次序不能颠倒。5、满二叉树——每一层都是满的6、完全二叉树——满二叉树的最后一层且最后几个编号缺失3、第 i 层最多有 2^i-1 个结点4、深度为 h 的二叉树的最大结点数是2^h- 17、节点数量为k,1号点为原创 2021-07-22 22:36:21 · 127 阅读 · 0 评论 -
数据结构-链表
此文并没有特别详细介绍,只是为了便于个人学习二叉树,想来了解一下链式存储我们通常使用的都是顺序表即数组来存储数据,查询的时候方便,但是要向从中间插入或删除数据就相对麻烦,那就要了解到链式存储。链表的内存空间是不连续的,通过指针来进行数据的访问可以实现快速插入和删除,但是不能随机访问,只能从头节点逐个访问每个节点一、单向链表:一个数据域,一个指针域,只可以向一个方向遍历二、双向链表(list):每个节点有数据域和两个指针域(前面的指针指向前一个节点,都一个指针指向下一个节点)双向链表的实现原理原创 2021-07-22 20:54:54 · 79 阅读 · 0 评论 -
数据结构-并查集(21.7.20)
我们之前简单了解过、栈、队列、链表等一些基本的数据结构,之前做题的时候用的少,掌握不熟练。因为时间紧迫,那就一边进行高级的数据结构,然后穿插的熟练一下之前的吧。并查集,用于处理一些不相交集合的合并问题。从名字可以看出来主要包含两部分,合并 find( ) 和查找 join( )。基本原理: 将所有对象划分为几个不相交集合,每个集合利用一棵树来表示,树根的编号就是整个集合的编号,每个结点存储它的父节点,用一个数组来储存。几个步骤:1、初始化 2、合并 3、查找 4、统计集的个数原创 2021-07-20 22:32:49 · 157 阅读 · 2 评论