![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
zzmc
这个作者很懒,什么都没留下…
展开
-
0-1背包问题(动态规划入门)
九讲背包问题题目有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[i][v]=max{f[i-转载 2012-10-23 09:57:56 · 507 阅读 · 0 评论 -
二叉查找树的分层遍历输出和镜像
题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。例如输入: 8 / \ 6 10 /\ /\5 7 9 11输出: 8 / \ 10 6 /\ /\11原创 2013-03-12 15:00:46 · 707 阅读 · 0 评论 -
类快排的时间复杂度问题
void swap(int* a,int* b){ *a = *a ^ *b; //a、b中不同位 *b = *a ^ *b; //b = a *a = *a ^ *b; //a = b}void ArrangArray(int* StartPos,int* EndPos){ //Step1先将小于零的放在最左边,大于等于0的数不区分,都放原创 2013-03-28 14:23:43 · 1031 阅读 · 0 评论 -
卡特兰数总结
一、白什么是卡特兰数可以从它对应的应用来分析:我总结了一下,最典型的四类应用:(实质上却都一样,无非是递归等式的应用,就看你能不能分解问题写出递归式了) 1.括号化问题。 矩阵链乘:P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?(h(n)种) 2.出栈次序问题。 一个栈(无穷大)的进栈转载 2013-05-04 21:28:30 · 691 阅读 · 0 评论 -
trie树--详解
文章作者:yx_th000 文章来源:Cherish_yimi (http://www.cnblogs.com/cherish_yimi/) 转载请注明,谢谢合作。关键词:trie trie树 数据结构前几天学习了并查集和trie树,这里总结一下trie。 本文讨论一棵最简单的trie树,基于英文26个字母组成的字符串,讨论插入字符串、判断前缀是否存在、查找字符串转载 2013-05-05 10:32:36 · 525 阅读 · 0 评论 -
完美洗牌算法
输入 , 如何在O(n)的时间,用O(1)的空间,将这个序列顺序改为 。输入:1234567dbcdefg则输出1a2b3c4d5e6f7g公式:y = 2x mod (2n -1),顾而 x = (y + k * (2n - 1))/2这里k可以化成y相关,因为i 范围为0--2n-1所以y+k(2n-1) 必须在0 --(2n-1)*2所以y 与k*(2n-原创 2013-05-06 16:32:08 · 3723 阅读 · 1 评论 -
KMP算法
KMP是一种线性复杂度的串匹配算法,普通的匹配算法的复杂度是O(m*n)而KMP则是O(m+n)。自己理解的KMP核心思想是:abcddadc i 此时等于3时发现不匹配,abedse j=3此时,传统算法是 i再从2开始匹配,但KMP是拒绝走回头路的,既然已经匹配过3了,那下一次i就需要算4了。i既然不回头,那回头的就只能是j了。怎样才能达到这样,不必重复比较呢?原创 2013-05-08 17:10:43 · 686 阅读 · 0 评论 -
由二分搜索引出的算法复杂度分析
由一个类似于二分搜索的算法引出了对复杂度的分析问题。想来想去,也不知道如何证明。这也说明自己对算法的理解不到位的地方,也是如何证明,如何分析复杂度,这里进行一次大补。如果用主定理的话,又体现不出对算法的深入理解吧。而且算法证明最好不要用主定理,不能体现水平吧。补充一: 算法复杂度分为时间复杂度和空间复杂度。对于时间复杂度,可以理解为程序运行的次数 也就原创 2013-09-17 22:21:35 · 1813 阅读 · 0 评论