
经典算法
文章平均质量分 92
lznnnnnnn
这个作者很懒,什么都没留下…
展开
-
最长公共子序列问题——LCS
一、作用 常用于解决字符串的相似度。二、概念 举个例子,cnblogs这个字符串中子序列有多少个呢?很显然有27个,比如其中的cb,cgs等等都是其子序列,我们可以看出 子序列不见得一定是连续的,连续的那是子串。 我想大家已经了解了子序列的概念,那现在可以延伸到两个字符串了,那么大家能够看出:cnblogs和belong的公共子序列吗? 在你找出的公共子序列中,你能找出最长的公共子序列吗?原创 2015-10-20 14:52:08 · 543 阅读 · 0 评论 -
最小栈实现
一 思路1.设原有的栈叫做栈A,此时创建一个额外的栈B,用于辅助原栈A。2.当第一个元素进入栈A的时候,让新元素的下标进入栈B。这个唯一的元素是栈A的当前最小值。(考虑到栈中元素可能不是类对象,所以B栈存储的是A栈元素的下标)3.每当新元素进入栈A时,比较新元素和栈A当前最小值的大小,如果小于栈A当前最小值,则让新元素的下标进入栈B,此时栈B的栈顶元素就是栈A当前最小值的下标。4.原创 2016-10-31 18:22:15 · 641 阅读 · 0 评论 -
你真的会写求最大公约数算法吗?
一 辗转相除法辗转相除法, 又名欧几里得算法(Euclidean algorithm),目的是求出两个正整数的最大公约数。它是已知最古老的算法, 其可追溯至公元前300年前。这条算法基于一个定理:两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数。比如10和25,25除以10商2余5,那么10和25的最大公约数,等同于10和5的最大公约数。public原创 2016-10-31 17:19:43 · 545 阅读 · 0 评论 -
浅析数据压缩算法
数据压缩是减少信息传输量最经济直接的办法,所以这篇文章将讲解一些经典的数据压缩算法。一 热身:基因组对于生物学的基因研究中,A、C、T、G是是用来表示生物DNA的四种碱基,对基因序列的处理实际上是对这四种碱基的处理,因此为了解决这种字符种类较少且固定的字符序列,我们可以用双位编码(用2bit位可以表示四中字符)压缩来解决这个问题。在这种方法中,只需要建立字母表即可对字符序列进行压缩和展开。原创 2017-05-17 15:51:17 · 8376 阅读 · 0 评论 -
字符串排序算法概述
一 键索引计数法首先针对小数组的排序方法,我们将数组中不同的字符串看做一个键r,对应键有个值r,如果需要按键值排序,那么键索引计数法就十分高效例如,我们将学生分为若干组,要求按照组号进行排序。此处组好就是对应的键值,我们分一下四个步骤进行排序:1 频率统计创建一个int数组count,并计算每个键出现的频率。对于每一个字符串,使用对应的键访问count数组并将其加1。如果键原创 2017-05-22 16:10:09 · 1395 阅读 · 0 评论