1.1算法和算法的衡量 一、算法 算法是为了解决某类问题而规定的一个有限长的操作序列。一个算法必须满足以下五个重要特性: 1.有穷性 对于任意一组合法输入值,在执行有穷步骤之后一定能结束,即:算法中的每个步骤都能在有限时间内完成; 3.可行性 算法中的所有操作都必须足够基本,都可以通过已经实现的基本操作运算有限次实现之; 一个特定算法的“运行工作量”的大小,只依赖于问题的规模(通常用整数量n表示),或者说,它是问题规模的函数。 假如,随着问题规模n的增长,算法执行时间的增长率和f(n)的增长率相同,则可记作: 如何估算算法的时间复杂度? 算法 = 控制结构 + 原操作 (固有数据类型的操作) 从算法中选取一种对于所研究的问题来说是 基本操作 的原操作,以该基本操作 在算法中重复执行的次数 作为算法运行时间的衡量标准。 频度:是指该语句重复执行的次数 例: {++x; s=0;} 将x自增看成是基本操作,则语句频度为1,即时间复杂度为O(1)。 如果将s=0也看成是基本操作,则语句频度为2,其时间复杂度仍为O(1),即常量阶。 例:for (i=1;i=n; ++i) {++x; s+=x;} 语句频度为:2n 其时间复杂度为:O (n) 即时间复杂度为线性阶。 1.2数据结构的基本概念 概括的说

文档评论(0)

1亿VIP精品文档

相关文档