
数据结构与算法
368chen
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法笔记(40)
1 斐波拉契数列,递归,复杂度2的n次方e二分查找:O(logn)二叉树的遍历:O(n) 每个节点遍历仅遍历一次排序的二维矩阵的查找:O(n)快排:O(nlogn)2 优先队列正常入,按优先级出。实现机制:1) 堆(二叉堆,多项式堆,斐波拉契堆),二叉搜索树。小顶堆:最小的在最上面3 Hashmap:平均时间复杂度:查找,删除,插入复杂度O(1)。最差的时间复...原创 2019-12-28 16:23:38 · 140 阅读 · 0 评论 -
数据结构与算法-链表
1 链表逆序你会吗?递归和非递归2原创 2019-10-25 10:23:33 · 117 阅读 · 0 评论 -
python 和数据结构
https://www.nowcoder.com/discuss/231656?type=post&order=time&pos=&page=11 python为什么会慢?是一个动态的解释型语言,python 中的值不少存储在缓存区而是分散存储在对象中python 是一门解释器语言,C++ 编译语言,也就是说C++ 程序首先要编译源程序,生成可执行文件一个...原创 2019-10-24 10:17:43 · 311 阅读 · 0 评论 -
路径规划算法对比
1Dijkstra - 静态最短路计算,O(N^2)所求的是单源最短路,好比说你写好了Dijkstra的函数,那么只要输入点a的编号,就可算出图上每个点到这个点的距离。算法思路和代码:https://www.cnblogs.com/jason2003/p/7222182.htmlhttps://www.cnblogs.com/wymlnn/p/4446838.htmlht...原创 2019-04-09 10:14:38 · 7437 阅读 · 0 评论 -
数据结构与算法-堆
堆:完全二叉树,高度为O(lgn),基本操作至多和树的高度成正比,构建堆的时间复杂度是O(n),堆是一颗完全二叉树,假设有n个节点,树高h=log2(n).证明方法如下:1 )假设根节点的高度为0,叶子节点高度为h,每层包含元素个数为2^x,x 从0 到h。2 )构建堆的过程是自下而上,对于每层非叶子节点需要调整的次数为h-x,因此很明显根节点需要调整(h-0) 次,每一层节点需要...原创 2019-08-31 22:20:29 · 419 阅读 · 0 评论 -
数据结构-二叉树的种类和介绍平衡二叉树
树的结构包括:1 二叉查找树;平衡二叉树;红黑树;B-树;B+树; 字典树; 后缀树; 广义后缀树。如果树不是一颗空树的话,那么二叉查找树具有以下特征:1.1 若左子树不为空,那么左子树所有的节点的值小于均小于他的根节点的值1.2 若由子树不为空,那么右子树的所有的节点的值大于根节点的值1.3 左右子树也分别为二叉排序树1.4 没有键值相等的节点2 平衡二叉树AV...原创 2019-09-14 16:41:54 · 568 阅读 · 0 评论 -
深度优先搜索(DFS)和广度优先搜索(BFS)
深度优先搜索和广度优先搜索都是图形搜索算法,1 深度优先搜索是针对图和树的遍历算法,利用深度优先搜索算法可以产生目标图的相应的拓扑排序表,利用拓扑排序表可以方便的解决了很多相关的图论问题,如最大路径问题,一般用堆数据结构来辅助实现DFS 算法,其过程要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只访问一次2 广度优先搜索是连通图的一种遍历算法,Dijstra 单源最短...原创 2019-09-14 16:59:12 · 610 阅读 · 0 评论 -
数据结构与算法-归并排序
原理: 是一种递归算法,不断将列表拆分为一半,如果列表为空或右一个项,则按照定义进行排序,如果列表有多个项,则分割列表并递归调用两个半部分的合并排序,一旦对两半排序完成,获取两个较小的排序列表并将它们组合层当个排序的新列表的过程。时间复杂度O(nlogn)...原创 2019-09-15 11:52:02 · 105 阅读 · 0 评论