- 博客(6)
- 收藏
- 关注
原创 并查集
并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。 并查集的时间复杂度O(N)。 并查集由一个整数型的数组和两个函数构成。数组a[]记录了每个点的前导点是什么,函数find是查找,join是合并。 int a[100000]; 函数find() 顾名思义find函数就是查找,想知道两个集合是否有相同的元素,只能一级一级的查找 查找元素所在的集合,即根节点并判断两个元素是否属于同...
2020-01-22 14:24:51
433
2
原创 归并排序和用归并求逆序数
归并排序 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序是一种稳定的排序方法。 归并排序的时间复杂度是O(nlogn)。 归并操作(merge),也叫归并算...
2020-01-21 18:25:09
322
原创 2020/1/15 - 2020/1/20学习总结
学习总结 1. 本周学习到的内容 (1)快速幂 (2)尺取 (3)归并 (4)栈和队列 (5)学习C++ 2. 刷题 快速幂取模 尺取的应用 求逆序数 栈和队列的应用 3. 不足之处 在学习上花费的时间比较少,学习的内容也很少,学习不够主动。 4. 感悟 通过这几天的学习,了解并掌握了快速幂,尺取和归并这几种算法,学的过程虽然有点枯燥,但学会时又很开心,在学习的过程中也学会了很多东西,也会每天都坚...
2020-01-21 17:56:04
304
原创 尺取
尺取法就是形如一把尺子的方法,取一块一块的截取你所需要的序列。 尺取其实也是一种枚举方法,但是有一定的技巧,所以比一般的算法要快很多。 尺取的时间复杂度为O(n)。 尺取的思想: 1.左右端点为0 2.移动右端点直到满足条件,获取区间内的需要信息 3.再向左移动左端点到一定的情况,获取区间内的需要信息 4.如果右端点没有到尽头则回到第二步 举个例子:求n个数中连续的m个数的最大值 #include...
2020-01-18 15:20:03
482
原创 快速幂,快速幂取余
普通求幂 一般的求幂的方法就是平常使用的pow函数,最简单的实现方法就是累乘,可以得到如下的代码: #include <stdio.h> int Pow(int a, int b) { int ans = 1; for(int i = 1; i <= b; i++) { ans *= a; } return ans; } i...
2020-01-16 13:28:14
281
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅