数算课后习题

preview
4星 · 超过85%的资源 需积分: 0 8 下载量 142 浏览量 更新于2013-05-25 收藏 366KB DOC 举报
1+1+(n-1)+(n-1) 简化后得到: T(n)=2n 因此,使用大"O"记号表示,该程序段的执行时间为: 答: T(n)=O(n) ### 数算算法与结构核心知识点解析 #### 数据与数据结构基本概念 **数据**:计算机可识别、存储和处理的信息载体。 **数据元素**:数据的基本单位,也可称为元素、结点、顶点或记录。数据元素可能由若干数据项组成。 **数据类型**:包含值的集合及在此集合上定义的操作。在编程语言中,数据类型通常是指已经实现的数据结构。 **数据结构**:描述数据间的关系和组织形式,包括逻辑结构、存储结构和数据运算。 **逻辑结构**:描述数据元素之间的逻辑关系,如线性或非线性关系。 **存储结构**:数据在计算机存储器中的实际表示方式。 **线性结构**:特征是有唯一开始结点和终端结点,每个结点有唯一前驱和后继。例如,线性表、栈、队列和串。 **非线性结构**:一个结点可能有多个前驱和后继。包括数组、广义表、树和图等。 #### 存储表示方法 **顺序存储方法**:逻辑相邻的结点在物理位置上也相邻,常用数组表示。 **链接存储方法**:逻辑关系通过指针字段表示,不依赖物理位置的连续性,使用链表结构。 **索引存储方法**:使用索引表指示结点地址,支持快速访问。分为稠密索引和稀疏索引。 **散列存储方法**:依据关键字直接计算结点存储地址,提高查找效率。 #### 函数增长速度与“O”符号 “O”符号用于描述函数的增长速度。例如,如果两个函数T(n)和f(n),当n趋向无穷大时,T(n)的增长速度不超过f(n)的倍数,那么T(n)=O(f(n))。此规则适用于算法复杂度分析,帮助评估不同算法随输入规模变化的效率。 #### 复杂度分析实例 当比较两个算法的执行时间时,如100n^2和2^n,要使100n^2优于2^n,需找到最小的n值。通过解不等式100n^2 < 2^n,可以得出n至少为15时,前者更快。 #### 程序段时间复杂度 对于给定的循环结构,每条语句的执行次数决定了整体时间复杂度。例如,循环体内语句的执行次数为n-1,加上循环条件检查和初始化语句,总时间复杂度为O(n)。 理解数据结构和算法的基础概念、存储表示方法以及复杂度分析是掌握数算算法与结构的关键。这不仅涉及理论知识的学习,更需通过实践应用来加深理解,从而在实际问题解决中发挥重要作用。