序列和字符串.ppt

2005年浙江省队培训 第3讲 序列和字符串的算法 刘汝佳 目录 一、算法分析基础 二、排序 三、序列的算法 四、串的算法 一、算法分析基础 抽象操作 抽象操作(abstract operations). 对于单一操作(如加法)的算法, 运行时间 = 操作时间 * 操作次数 (不考虑cache等体系结构方面的影响) 操作时间取决于计算机 操作次数取决于算法 算法分析: 只考虑算法特性, 因此只考虑操作次数 操作数函数 在很多情况下, 基本操作数可以写成N的函数f(N), 其中N代表主要参数 例如, 给N个数排序的问题, N就是主要参数, 它最明显的决定了问题的复杂程度, 也影响着算法效率 存在多个主参数的情况类似定义, 本节暂不考虑 比较两个算法 假设有两个算法 算法一执行了f(n)=n2次基本操作 算法二执行了g(n)=n2/2次基本操作 那个算法好呢? 绝对操作数算法二好,因为g(n) f(n) 增长情况呢? n扩大10倍,f(n)扩大100倍,g(n)也扩大100倍 两个算法的增长情况一样! 我们说: 渐进时间复杂度一样! 渐进时间复杂度 f(n)=n2和g(n)=n2/2 结论: 增长情况一样 问题: 如何表示“增长情况”? 方法: 把f(n)和g(n)变成“渐进”形式,然后直接比较 如何变成“渐进”形式?只保留最“大”项, 忽略系数, 符合前面介绍的原则 例1:3n4+

文档评论(0)

1亿VIP精品文档

相关文档