Data Structure&&Algorithm
文章平均质量分 74
Thinker_YU
愿做一个思想者!!
展开
-
最长公共子序列(LCS)问题
最长公共子序列(LCS)问题我们经常遇到:给定两个序列,求这两个序列的最长公共子串问题,形式化表示:给定两个序列X=,求X和Y长度最长的公共子序列,本文将利用动态规划方法高效地求解LCS(连续和不连续),并分别给出在C编写的程序。1、动态规划法通过组合子问题的解来求解原问题,通常按照如下的4个步骤来设计一个动态规划算法:、刻画一个最优解的结构特征。、递归的定义最优解的值。、原创 2014-09-14 09:55:19 · 573 阅读 · 0 评论 -
怎样给一个磁盘文件排序?
问题的准确描述:1、输入:一个最多包含n个正整数的文件,每个数都小于n,其中n=100000000。如果在输入文件中有任何整数重复出现就是致命错误。没有其他数据与该整数关联;2、输出:按升序排列的输入整数的列表;3、约束:最多有大约1MB的内存空间可用,有充足的磁盘存储空间可用。运行时间最多几分钟,运行时间为10秒钟就不需要进一步优化了程序设计:一般的分段读取磁盘文件,内存利用快速排序,外存利原创 2014-09-15 17:28:07 · 2956 阅读 · 0 评论 -
灵机一动,经典算法
摘自于bain看起来很困难的问题也可以有一个简单的、意想不到的答案。拿到一个问题,不要急于完成程序的实现,静下心来多想一想。首先我们来看三个问题的描述:一、将一个n元的一维向量顺时针或逆时针旋转i个位置,要求其时间复杂度为O(n),空间复杂度为O(1),比如n=8,i=3时,向量abcdefg顺时针旋转为defghabc。二、给定一个英语字典,找出其中所有的变位词集合。比如,“po原创 2014-09-26 18:07:47 · 768 阅读 · 0 评论 -
九种常用排序的性能分析总结
间间断断的将9种排序实现,并且将其以博客笔记的形式记录下来;现在就该来综合的分析这九种排序,让我们先来看看其算法复杂度和稳定性的分析结果:算法名称平均时间辅助空间稳定性冒泡排序O(n2)O(1)是选择排序O(n2)O(1)否插入排序O(n2)O(1)是自底向上归并排序转载 2014-09-30 14:32:47 · 595 阅读 · 0 评论 -
八种常用内部排序算法总结
在公司实习了,由于公司的性质,以后的工作中用到算法&数据结构的知识可能会很少,很想把以前学的数据结构&算法的知识系统的回忆一下,但由于时间的原因,再加上我一直都很喜欢排序算法的思想。近期主要就排序这个问题做一个系统的介绍:冒泡排序,简单选择排序,直接插入排序,希尔排序,快速排序,归并排序,堆排序,基数排序。排序的稳定性:假设 ,在排序前的序列中第i记录领先于第j个记录。如果排序后第i记录仍领先原创 2014-10-18 22:31:53 · 6594 阅读 · 0 评论