
常用算法简单讲解
文章平均质量分 91
我他么怎么这么菜
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
TopK问题
TopK问题水一下今天看完了排序,想到了之前写过的一道题,输出前K大元素。先吧比较常用的一种基于快排的算法的复杂复分析快排的平均复杂度分析。T(N)=T(N/2)+m∗N\quad T(N) = T(N/2) + m*NT(N)=T(N/2)+m∗N =T(N/4)+m∗N+m∗N/2\qquad \quad \ \ \ = T(N/4) +m*N+m...原创 2020-04-13 11:19:27 · 296 阅读 · 0 评论 -
归并排序的非递归版本
归并排序的非递归版本相信递归版本的大家都会写,那么非递归版本的呢,众所周知,过多的递归调用会影响代码运行的效率,还会有爆栈的危险,那么写成非递归版本就万事大吉了。我们把递归版本的理解了,就可以容易的写出非递归版本,首先就是从长度为1的有序序列开始,每次合并相邻的两端长度为L的序列,合并完后,长度加倍,继续合并,知道整个序列有序。展示成归并树的形式如下。空间开销只需要O(N)就可以了,和递...原创 2020-04-10 19:30:06 · 238 阅读 · 0 评论 -
高级数据结构——树状数组
数据结构——树状数组一维树状数组二维树状数组改进:区间更新-单点求值(一维差分)改进:区间更新-单点求值(二维差分)一维树状数组在一维树状数组中,我们维护了一个前缀和。 例如对于bit[i],我们维护了从A[i-lowbit(i)+1]到A[i]的前缀和。那么要求到A[i]的前缀和,只要不断的让i减 lowbit(i),通过求出不同区间的前缀和就能求出从0开始到i的和。加上一个...原创 2020-04-01 12:10:03 · 296 阅读 · 1 评论 -
BFS和DFS的一般讲解以及一般模版
PTA 图(上)列出连通集基本上是模版题,就是用BFS和DFS去遍历图。BFS和DFS都是图和搜索问题中很基础的算法,也是基本上所有算法的基础,包括A*,IDA*,迭代加深,双向广搜等。所以对于基础一定要多加重视。DFS主要通过递归实现。一般模版如下。这里用的是费用矩阵。void dfs(int v) { vis[v] = 1; path.push_back(v); ...原创 2020-03-30 21:13:40 · 282 阅读 · 0 评论