定义:一个算法中的语句执行次数称为 语句频度 或 时间频度; 约定:检验算法的效率,主要考虑 最坏时间复杂度 和 平均时间复杂度 一般不特别说明,讨论的时间复杂度均是最坏情况下的时间复杂度 1、时间复杂度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有 ...
分类:
其他好文 时间:
2019-06-09 11:16:54
阅读次数:
109
我们要学习的第一个数据结构就是数组,数组中很多值得挖掘。数组基础把数据码成一排进行存放数组中索引从0开始,Java语法中要求数组存放同一类型的元素,可以通过中括号下标的方式取到元素。这样可以看到Main中有的方法。packagecn.mtianyan;publicclassMain{publicstaticvoidmain(String[]args){//必须传入长度int[]arr=newint
分类:
编程语言 时间:
2019-05-30 17:48:01
阅读次数:
103
1. 如果插入一个node引起了树的不平衡,AVL和RB-Tree都是最多只需要2次旋转操作,即两者都是O(1);但是在删除node引起树的不平衡时,最坏情况下,AVL需要维护从被删node到root这条路径上所有node的平衡性,因此需要旋转的量级O(logN),而RB-Tree最多只需3次旋转, ...
分类:
其他好文 时间:
2019-05-14 13:20:20
阅读次数:
119
快速排序是一种划分交换排序基本思想是: 1.先从数列中取出一个数作为基准数,一般是第一个数。 2.将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 3.再对左右区间重复第二步,直到各区间只有一个数。若序列基本有序时,蜕变成冒泡排序,最坏情况是已经排好序平均时间复杂度O(nlogn) ...
分类:
编程语言 时间:
2019-05-03 14:28:04
阅读次数:
120
三、堆排序(Heapsort) 优先队列可以用于O(N log N) 存储空间增加一倍 排序类别 排序方法 时间复杂度 时间复 杂度 空间复杂度 稳定性 复杂性 平均情况 最坏情况 最好情况 选择排序 堆排序 O(nlog2n) O(nlog2n) O(nlog2n) O(1) 不稳定 较复杂 堆排 ...
分类:
编程语言 时间:
2019-03-25 10:31:01
阅读次数:
177
LCA最小公共父节点解法: 1、二叉搜索树: 中序遍历是升序,前序遍历即按序插入建树的序列。 二叉搜索树建树最好用前序+中序,如果用前序建树,最坏情况会退化为线性表,超时。 最近公共祖先甲级: A1143,1151 利用二叉搜索树的性质寻找结点u和v的最低公共祖先(递归解法) 1)如果根结点的值大于 ...
分类:
其他好文 时间:
2019-02-17 00:59:00
阅读次数:
211
考虑倒过来计算最短路径长度,设dis[u]表示在最坏情况下,点u到最近的一 个出口的最短路,则p个出口的dis值都是0,答案即为dis[0]。 1 #include <cstdio> 2 #include <iostream> 3 #include <cstring> 4 #include <cma ...
分类:
其他好文 时间:
2019-02-15 21:08:51
阅读次数:
178
有n个物品,每个物品有m个特征。随机选择一个物品让你去猜,你每次可以询问一个特征的答案,问在采取最优策略时,最坏情况下需要猜的次数是多少。 设siz[S]为满足特征性质集合S的特征的物品总数,dp[S]为当前得到的物品特征信息为S的情况下最坏情况下需要猜多少次,则$dp[S]=max\{dp(S|( ...
分类:
编程语言 时间:
2019-02-15 01:09:34
阅读次数:
196
时间复杂度、空间复杂度、稳定性比较 | 排序方法 | 平均情况 | 最好情况 | 最坏情况 | 辅助空间 | 稳定性 | | | | | | | | | 插入排序 | O(n^2) | O(n) | O(n^2) | O(1) | 稳定 | | 希尔排序 | O(n log(n))~O(n^2) | ...
分类:
编程语言 时间:
2019-01-25 13:02:40
阅读次数:
224
题解 CF576C 【Points on Plane】 一道很好的思维题。 "传送门" 我们看这个曼哈顿距离,显然如果有一边是按顺序排列的,显然是最优的,那另一边怎么办呢? 假如你正在$ioi$赛场上,此时遇到一个$n\le 10^6$的题目,你现在发现自己的排列最坏情况是$O(n^2)$的,你怎么 ...
分类:
其他好文 时间:
2019-01-23 21:39:33
阅读次数:
274