- 博客(3)
- 收藏
- 关注
原创 并查集入门 | 图解
并查集入门简介并查集(Disjoint Set)是多个树状结构的集,一个数组内一般有多个树,每个树都是不相交的,它可处理一些不相交的问题。举例,假设A同学和B同学是朋友,C同学和D同学也是朋友,现在B同学和C同学也是朋友啦,那么通过B同学和C同学的介绍,A、B、C、D四位同学都是朋友了。现在A、B、C、D就是一个集合啦,而并查集的作用就是将A、B与C、D两个集合的合并。原理定义一个数组: int s[N] //存放集开始时,每个元素都是一个独立的集,则分别初始化成i,如下图所示:
2020-10-13 21:03:25
636
1
原创 模板|快速幂(位运算)
一般来说,求幂累乘,时间复杂是O(n),快速幂则是快速求幂,时间复杂度是O(log2n)。快速幂做到如此高的效率,示意如图所示:由图中的式子可知:朴素求幂是逐步相乘,b越大则步数越长;而快速幂是b越大,则省的步数越多,步数与b的二进制位数相等。快速幂的代码如下:typedef long long ll;//快速幂 ll fastPow(ll a,ll b){ ll res=1; ll...
2020-02-09 14:49:58
218
原创 快排的基础概念和优化
快排的基础概念和优化快排的基础概念:选用一个基本值key,将比key小的放入左边,比key大的放入右边,不断重复,最终得到有序数列。快排是一个比较高效的排序方法,时间复杂度是 n*log2n 。快排是有一定的不稳定性,当数列倒序、相同元素较多时,快排比较其它排序方法没有更优越性快排的实现过程(如图所示):基本快排的实现:代码如下:void quickSort(int *a,i...
2020-02-02 19:14:24
497
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人