摘要: 时空复杂度 一、概念 在这里,我们引入了时间复杂度和空间复杂度这两个概念作为选择适合算法的重要依据,一般对比算法的好坏基本上从它的时间复杂度和空间复杂度来综合判断就可以得出哪个更适合,复杂度通常来说越小越好。 算法的时间复杂度和空间复杂度的作用:时间复杂度是指执行这个算法所需要的计算工作量;而空间复 阅读全文
posted @ 2021-04-09 17:05 kisfly 阅读(385) 评论(1) 推荐(0) 编辑
摘要: 一、哈希表 1.使用哈希的前提 在实际编程中,我们常常面临着两个问题:存储和查询,这两个过程的效率往往制约着整个程序的效率,而我们常见的存储数据的数据结构比如线性表,树,图等,数据在结构中的位置往往是不明确的,当我们在这些数据结构中要查询一个数据,都避免不了去执行查询算法,去遍历数据结构,拿关键字和 阅读全文
posted @ 2021-04-09 17:04 kisfly 阅读(3163) 评论(0) 推荐(0) 编辑
摘要: 模拟vector 一、vector 模拟动态数组 #include 1、vector的理解 封装了动态数组的顺序容器,可以简单的认为,vector是一个能够存放任意类型的动态数组,也称为向量 2、vector的特性 1.顺序序列,有序群集,逻辑位置和物理位置连续 2.支持随机存取 3.在末端添加或删 阅读全文
posted @ 2021-04-09 17:03 kisfly 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 图搜索算法 广度优先搜索 广度优先:bfs 一、注意事项 1.走直线,不能走斜线 2.理解为树的层次次序 3.如果有路,必然找到最短路径 4.需要遍历所有可通行的节点,如果地图比较大,开销就比较大 5.如果已经搜索过,就不再搜索 6.同时向所有可通过的的方向进行搜索 思路:其实和深度优先搜索没什么区 阅读全文
posted @ 2021-04-09 17:02 kisfly 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 图及图的搜索算法 一、图论 图论是数学的一个分支,它以图为研究对象 图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常同来描述事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物之间有这种关系 二、图的结构 非线性结构 有n个直接前趋,n个直接后继 三、图的组成 由两 阅读全文
posted @ 2021-04-09 16:59 kisfly 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 哈希 哈希又名散列法,是一种特殊的查找方法 哈希法是希望不通过任何的比较,一次存取就能得到元素 一、设计哈希表 1.确定表的空间范围,确定哈希值域 2.构造一个合适的哈希函数,这个函数要确保表中的元素经过该函数的计算之后,函数的返回值的范围在哈希值域之内 3.选择处理冲突的方法(用链式结构) 二、哈 阅读全文
posted @ 2021-04-09 16:58 kisfly 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 哈夫曼树及堆 一、哈夫曼树 最优二叉树,是一类带权路径长度最短的树 所谓树的带权路径长度,就是树中所有叶节点的权值乘上其到根节点的路径长度(若根节点为0层,叶节点到根节点的路径长度为叶节点的层数)。树的路径长度是从树根到每一节点的路径长度之和 权值自己设定 二、堆 最大(小)堆,其实就是最大(小)完 阅读全文
posted @ 2021-04-09 10:26 kisfly 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 二叉树 实现用线性结构表示非 线性结构 数 》二叉树 》满二叉树 》完全二叉树 一、二叉树的概念 二叉树也是树的一种,其存储结构及其算法都较为简单,因此二叉树显得特别重要。 二叉树:是每个节点的最多有两个子树的有序树--度最多为2的有序树 注意:在有序树中,虽然一个节点的孩子之间是有左右次序的,但是 阅读全文
posted @ 2021-04-09 10:25 kisfly 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 树 树形结构是一类重要的非线性结构。树形结构是节点之间有分支,并具有层次关系的结构。 特殊且重要: 树中的节点,只有一个直接的前趋,有n个直接的后继 比如:家谱 非线性结构:在结构中任何一个节点,只有一个直接前驱,有n个直接后继 线性结构:在结构中任何一个节点,只有一个直接前驱,只有一个直接后继 一 阅读全文
posted @ 2021-04-09 10:22 kisfly 阅读(245) 评论(0) 推荐(0) 编辑