ACM知识点分类(红:完全没听说过 黄:听说过 绿:接触过做过题 蓝:很熟悉刷过专题 紫:见一道秒一道)第一类:基础算法(1) 基础算法:枚举,贪心,递归,分治,递推,构造,模拟(2) 动态规划:背包问题,树形dp,状态压缩dp,单调性优化,插头dp(3) 搜索:dfs,bfs,记忆化搜索,...
分类:
其他好文 时间:
2015-08-17 23:20:52
阅读次数:
285
STL实践与分析--泛型算法的结构引言: 正如全部的容器都建立在一致的设计模式上一样,算法也具有共同的设计基础。 算法最主要的性质是须要使用的迭代器种类。全部算法都指定了它的每一个迭代器形參可使用的迭代器类型。比方,假设形參必须为随机訪问迭代器则可提供vector或 deque类型的迭代器,或者.....
分类:
编程语言 时间:
2015-08-16 18:01:55
阅读次数:
196
为什么要进行算法分析?
预测算法所需的资源
计算时间(CPU 消耗)内存空间(RAM 消耗)通信时间(带宽消耗)
预测算法的运行时间
在给定输入规模时,所执行的基本操作数量,或者称为算法复杂度(Algorithm Complexity)
如何衡量算法复杂度?
内存(Memory)时间(Time)指令的数量(Number of Steps)特定...
分类:
编程语言 时间:
2015-08-02 21:44:16
阅读次数:
213
示例代码(1)
decimal Factorial(int n)
{
if (n == 0)
return 1;
else
return n * Factorial(n - 1);
}
【分析】
阶乘(factorial),给定规模 n,算法基本步骤执行的数量为 n,所以算法复杂度为 O(n)。
示例代码(2)
int FindMaxElement(int[] array)
{
int max = array[0]...
分类:
编程语言 时间:
2015-08-02 21:43:05
阅读次数:
174
c语言基础算法大全
冒泡排序
选着排序
插入排序
快速排序
shell排序.
合并排序.
下面是各个排序算法的实现:
冒泡排序
void bobuleSort(int a[], int len)
{
int i,j,flag =1;
for(i = 0; ii; j--)
{...
分类:
编程语言 时间:
2015-07-30 00:43:56
阅读次数:
167
题意:二分图最大匹配思路:二分图最大匹配基础算法就是匈牙利算法,和网络流中的找增广路很类似个人偏好DFS版本= =当时也是看kuangbin大大的模板才逐渐摸索的补充定义和定理:最大匹配数:最大匹配的匹配边的数目最小点覆盖数:选取最少的点,使任意一条边至少有一个端点被选择最大独立数:选取最多的点,使...
分类:
其他好文 时间:
2015-07-20 22:57:08
阅读次数:
110
最大轮廓和投影 最近非常多的用到了最大轮廓和投影运算。回想起来,这两种算法的确是属于非常常见的基础算法。这里加以总结和提取。 最大轮廓: 前提是图像经过了灰度和阈值处理,也可以直接处理canny的结果,有些时候需要预先经过色彩域的转换。最后得到的结果,应该是一个contour,当然可以采用一定的方法...
分类:
其他好文 时间:
2015-07-16 07:16:50
阅读次数:
155
Description
在操场上沿一直线排列着
n堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的两堆石子合并成新的一堆,
并将新的一堆石子数记为该次合并的得分。允许在第一次合并前对调一次相邻两堆石子的次序。
计算在上述条件下将n堆石子合并成一堆的最小得分。
Input
输入数据共有二行,其中,第1行是石子堆数n≤100;
第2行是顺序排列的各...
分类:
编程语言 时间:
2015-07-15 22:58:40
阅读次数:
170
一、 ?外部文件排序: ?内存大小为n,总的数据大小为m ? ? ? ?a. ?每次读入数据n, quick_sort。生成m/n个有序队列, ?依次归并 ?? ? ? ( 算法实现=> ) ? ? ? ?b. ?每次读入数据n, quic...
分类:
编程语言 时间:
2015-07-13 22:35:20
阅读次数:
227
激励我写博文有很大的原因是,在校电面的时候,被问到了很多基础算法问题。当时瞬间懵哔了。痛定思痛。决定好好复习下常用的基础算法。 一).常见的排序算法。 1).简单选择排序。 基本思想:每一趟在后面n-1个待排的数据中选出一个最小(大)的数据作为有序序列的第i个元素。之后依次循环遍历。 ...
分类:
编程语言 时间:
2015-07-10 00:11:15
阅读次数:
226