过早的优化是不好的,但是程序已经跑起来了,优化一下也是有意义的。 简单的用一下stl,时间复杂度O(n*log(n)),空间复杂度O(n)。 1 class BetterSolver{ 2 set<string> s; 3 public: 4 void solve(){ 5 s.clear(); 6 ...
分类:
其他好文 时间:
2016-04-12 18:57:23
阅读次数:
123
k-邻近算法 优点: 精度高,对异常值不敏感, 无数据输入假定 缺点:计算复杂度高, 空间复杂度高 使用范围: 数值型, 标称型 距离计算所需要的数值, 最好使结构化的数据格式 1. 需要输入样本数据和机构化的输出结果 2. 运行k邻近算法判定输入数据分别属于哪个分类 3. 应用对计算出的分类执行后 ...
分类:
编程语言 时间:
2016-04-11 22:24:02
阅读次数:
239
归并排序既可以进行内部排序也可以进行外部排序。归并排序的时间复杂度O(N*lgN),空间复杂度为O(N) 在这种情况下可以使用外部归并排序: 若外存中还有N个文件记录,不能一次性读入内存,可以将外存中的文件记录分成若干长度为L的可以读进内存的段,并依次读入内存进行内部排序,将有序子文件(归并段)重新 ...
分类:
编程语言 时间:
2016-04-11 13:54:27
阅读次数:
291
选择排序图像化显示: 选择排序的基本思想:从待排序序列中找到最小(大)的元素,存放到序列起始位置,缩小排序范围,再找当前序列最小(大)的元素,放在起始位置之后,直到所有数据都被排完。时间复杂度=O(n^2)空间复杂度=O(1)最好情况:已经有序交换次数O(1)最坏情况:..
分类:
编程语言 时间:
2016-04-11 10:28:25
阅读次数:
388
1快排优化 2归并优化 3时间空间复杂度对比 ...
分类:
编程语言 时间:
2016-04-10 06:45:40
阅读次数:
197
对于斐波那契数,若是采用递归的算法,每个递归调用都将触发另外两个递归调用,而这两个中调用任意一个还会触发另外两个的调用。递归调用的时间复杂度O(2^N),空间复杂度为O(N),所以在计算略大的数会花费一定的时间和空间。递归程序如下:#include<iostream>
usingnamesp..
分类:
其他好文 时间:
2016-04-10 01:26:47
阅读次数:
248
參考:本文为小甲鱼教学视频的学习笔记。 1、为什么要学习时间复杂度和空间复杂度?你说一个算法好另外一个算法不好,有什么推断根据?哪个算法效率高?怎么推断?那么就要学习时间和空间复杂度了。 思考:学习每个知识之前都应该要考虑一下为什么要学习,学了有什么用处,什么场景下去用。 2、算法的效率高通常是指算 ...
分类:
其他好文 时间:
2016-04-09 10:36:33
阅读次数:
117
这一章比较短! 空间复杂度(space complexity)和辅助空间(auxiliary space)经常混用,下面是正确的辅助空间和空间复杂度的定义 辅助空间:算法需要用到的额外或者暂时的存储空间。 空间复杂度:是指算法所需要的所有存储空间,这是跟输入数据的大小决定的。空间复杂度包括辅助空间和 ...
分类:
其他好文 时间:
2016-04-07 07:07:33
阅读次数:
118
len[u]表示结点u所表示的回文串长度,cnt[u]表示结点u所表示的回文串出现次数,num[u]表示结点u的后缀回文串个数(包括自己)。 由于一个字符串本质不同的回文串最多不超过n个,所以空间开n+2即可,算上每个结点的26个Next指针,空间复杂度o(26*n)。时间复杂度o(n)。 stru ...
分类:
其他好文 时间:
2016-04-07 01:29:19
阅读次数:
137
题目: 解题思路:1、简单思路:暴力破解法,时间复杂度O(n^3),肯定通不过。 2、动态规划法:(一般含“最XX”等优化词义的题意味着都可以动态规划求解),时间复杂度O(n^2),空间复杂度O(n^2)。 形如"abba", "abbba"这样的字符串,如果用dp[i][j]表示从下标i到j之间的 ...
分类:
其他好文 时间:
2016-04-06 11:03:39
阅读次数:
202