OJ和正式的比赛一定会写明评测机各参数的,如果只是想比较准确的知道实际评测的效率,可以搞一些无聊的大递归交上去试试(比如1e8次求mod),最多不过几个TLE/WA而已。好在大家的机器基本上差不多,除非碰到恶意卡常数的情况,否则凭借一般人的常识足够了(比如1e4^2脸没洗好不要试,几e6的规模nlg...
分类:
其他好文 时间:
2014-08-03 17:56:25
阅读次数:
195
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。
假设其数组长度为n,其算法复杂度为o(log(n))
代码:
#include
using namespace std;
bool BinarySearch(int data[],int start, int end, int number){
while(start...
分类:
其他好文 时间:
2014-08-01 09:14:51
阅读次数:
228
KMP算法应用于 在一篇有n个字母的文档中 查找某个想要查找的长度为m的单词;暴力枚举:从文档的前m个字母和单词对比,然后是第2到m+1个,然后是第3到m+2个;这样算法复杂度最坏就达到了O(m*n),对于大数据肯定不行。KMP算法的精髓即设法减少不必要的枚举次数,举个例子;比如已经匹配好了单词的前...
分类:
其他好文 时间:
2014-07-29 12:16:46
阅读次数:
192
介绍算法时间复杂度的好文,对于算法分析很有用...
分类:
其他好文 时间:
2014-07-26 02:48:26
阅读次数:
336
对于同一计算问题可以用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。对于一个算法,当输入规模大到使只与运行时间的增加量级有关时,就是在研究算法的渐进效率。也就是说,从极限角度看,我们只关心算法...
分类:
其他好文 时间:
2014-07-07 18:27:56
阅读次数:
218
前面一节介绍了Ford-Fulkerson算法。那么这个算法是否一定能够在有限步骤内结束?要多少步骤呢?
这个问题的答案是,该算法确实能够在有限步骤之内结束,但是至于需要多少步骤,就要仔细分析。
为了分析问题,需要假定图中所有边的容量都是整数。但是有个严重的问题,比如下图中,如果使用Ford-Fulkerson算法,需要迭代200次才能结束。
...
分类:
其他好文 时间:
2014-06-28 08:27:13
阅读次数:
225
插入排序的算法复杂度为O(n2),但假设序列为正序可提高到O(n),并且直接插入排序算法比較简单,希尔排序利用这两点得到了一种改进后的插入排序。一. 算法描写叙述希尔排序:将无序数组切割为若干个子序列,子序列不是逐段切割的,而是相隔特定的增量的子序列,对各个子序列进行插入排序;然后再选择一个更小.....
分类:
其他好文 时间:
2014-06-22 23:28:03
阅读次数:
285
数学题(前两问用数学方法实现)
1. 找出这样的4位数:千位数等于4位数中0的个数,百位数等于4位数中1的个数,十位数等于4位数中2的个数,个位数等于4位数中3的个数。
2. 改为7位数,最高位为0的个数,次高位为1的个数,依次类推,结果又如何?
3. 编程实现一个函数,求出位数为n时的解,要求算法复杂度尽可能小。
解:
1.假设这个四位数是:
千位
...
分类:
其他好文 时间:
2014-06-22 19:37:58
阅读次数:
389
写了好久,终于写成了.第一次zai leecode错题,题目质量很高,适合面试,与 1.归并排序是稳定的,在java中 Arrays.sort(a);中对于对象的排序就是归并排序。对于原子类型数据使用的是快排。 2.算法复杂度,我们都知道归并排序的最好最坏最差复杂度为nlogn,空间复杂度为n,在链...
分类:
编程语言 时间:
2014-06-15 00:02:45
阅读次数:
402
一、“换边”算法用Kruskal求最小生成树,标记用过的边。求次小生成树时,依次枚举用过的边,将其去除后再求最小生成树,得出所有情况下的最小的生成树就是次小的生成树。可以证明:最小生成树与次小生成树之间仅有一条边不同。这样相当于运行m次Kruskal算法。复杂度O(m^2)示例代码:int
Krus...
分类:
其他好文 时间:
2014-06-09 22:16:39
阅读次数:
348