本分摘录翻译自wikipedia Viterbi algorithm。
维特比算法(Viterbi algorithm)是一种动态规划算法,它用于寻找最可能产生观测到的事件的序列,这个序列是隐...
问题:给定字符串,求其最长回文子串的长度。回文串是形如"aba", "abba"的对称字符串。例如:字符串“xabcbam”的最长回文字符串长度为5。
这个问题可以用动...
本文简单介绍一种最基本的矩阵乘法的实现方法。
设有矩阵A(M×N)和矩阵B(N×K),令C=A*B, 那么矩阵C(M×K)的元素为:
其中Cik是C的第i行第k列的元素;Aij是...
文档的分值代表了该文档在特定查询词下对应的相关性高低,他关联着信息检索向量空间模型中的向量夹角的接近度。一个文档越与查询词相关,得分越高。分值计算...
一般的二叉搜索树(BST)在插入和删除数据的时候,直接在一定的位置添加和删除节点,没有应用使树
平衡的调整策略,树的高度不能得到有效控制,在极端的数据下...
本文首先简要阐述哈夫曼算法的基本思想,然后介绍了使用哈夫曼算法进行文件压缩和解压缩的
处理步骤,最后给出了C语言实现的文件压缩和解压缩的源代码。
哈...
KMP算法是一种线性时间复杂的字符串匹配算法,它是对BF算法(Brute-Force,最基本的字符串匹配算法的)改进。
对于给的的原始串S和模式串P,需要从字符串S...
单链表的快速排序和数组的快速排序在基本细想上是一致的,以从小到大来排序单链表为例,
都是选择一个支点,然后把小于支点的元素放到左边,把大于支点的...
求数组中第K大的数可以基于快排序思想,步骤如下:
1.随机选择一个支点
2.将比支点大的数,放到数组左边;将比支点小的数放到数组右边;将支点放到中间...
摘要:本文简要介绍了当数据量大到不适合在内存中排序时,利用磁盘进行排序的多路归并算法。
关键字:外排序,磁盘排序,多路归并
下面以一个包含很多...
摘要:本文简要介绍了采用贪心策略的最小生成的生成算法——Prim算法。文中首先给出了一个易于理解
的O(N^3)的实现,然后给出了优化后的O(N^2)实现,也就是...
摘要:本文简要介绍了top-k(求一个序列中前K个最大或最小的元素)算法的二分实现方法,并给出了C++源
代码
关键字:top-k,二分,快排序
网上介绍to...
问题描述:给定两个正整数A,B(A和B可能超出计算机中国INT32,INT64的范围,高达几百甚至上千位),
求A和B相乘的积。
解决方案:
用计算机模拟手算的...
摘要:本文简要介绍了拓扑排序算法的原理,并给出了基于邻接矩阵实现的拓扑排序c++源码
关键字:拓扑排序,topological sort,AOV网络
最近在论坛上看...
题目比较简单,但是这里采用的一次遍历方法还是比较通用的。
设:
arr: 数组, size=N
i:记录上一次放置偶数的下一个位置, 初始i=0
j : 当前遍历...