第一章 概述:(1)数据的逻辑结构、存储结构和数据运算三方面的概念及相互关系。(2)采用抽象数据类型描述求解问题。(3)算法描述中的输出型参数描述方法。(4)算法的时间和空间复杂度分析,特别是递归算法的时间和空间复杂度分析。(5)如何设计“好”的算法。1.1什么是数据结构:(1)数据结构是相互之间存在一种或多种特定关系的数据元素的集合。数据是由数据元素组成的,数据元素可以由若干个数据项组成,数据元素是数据的基本单位,数据项是数据的最小单位。(2)数据结构一般包括数据逻辑结构、数据存储结构和数据运算3个方面。数据运算分为抽象运算(运算功能描述)和运算实现两个层次。(3)数据的逻辑结构分为集合、线性结构、树形结构和图形结构,树形结构和图形结构统称为非线性结构。(4)数据的存储结构分为顺序存储结构、链式存储结构、索引存储结构和哈希(散列)存储结构。(5)在设计数据的存储结构时既要存储逻辑结构的每个元素值,又要存储元素之间的逻辑关系。同一逻辑结构可以设计相对应的多个存储结构。
1.2算法及其描述:(1)算法是对特定问题求解步骤的一种描述,它是指令的有限序列。运算实现通过算法来表示。(2)算法具有有穷性、确定性、可行性、输入和输出5个重要特征。(3)算法满足有穷性,程序不一定满足有穷性。算法可以用计箅机程序来描述,但并不是说任何算法必须用程序来描述。(4)在用C/C++语言描述算法吋,通常算法采用C/C++函数的形式来描述,复杂算法可能需要多个函数来表示。(5)在设计一个算法时先要弄清哪些是输入(已知条件)、哪些是输出(求解结果),通常将输入参数设计成非引用型形参,将输出参数设计成引用型形参。在有些情况下,算法求解结果可以用函数返回值表示。(6)对于算法的输入通常需要判断其有效性,当输入有效并正确执行时返回true(真),否则返回false(假)。
1.3算法分析基础:(1)算法分析包括时间复杂度和空间复杂度分析,其目的是分析算法的效率以求改进,所以通常采用事前估算法,而不是进行算法绝对执行时间的比较。(2)在分析算法的时间复杂度时通常选取算法中的基本运算,求出其频度,取最高阶并置序数为1作为该算法的时间复杂度。(3)递归算法的时间复杂度分析方法是先由递归算法推导出执行时间的递推式,然后计算T(n),再用O表示。(4)递归算法的空间复杂度分析方法是先由递归算法推导出占用空间的递推式,然后计算S(n),再用O表示。
1.4数据结构+算法=程序:(1)通常算法是建立在数据存储结构之上的,设计好的存储结构可以提高算法的效率。(2)求解问题的一般步骤是建立其抽象数据类型,针对运算的实现设计出合理的存储结构,在此基础上设计出尽可能高效的算法。
[单选题]算法的时间复杂度取决于( )。
待处理数据的初态
算法的长短
问题的规模
执行算法的计算机性能的高低
答案:问题的规模和待处理数据的初态
[单选题]算法的计算量的大小称为算法的( )。
效率
现实性
难度
复杂度
答案:复杂度
[单选题]算法的时间复杂度与( )有关。
问题规模
编译后执行程序的质量
源程序的长度
计算机硬件的运行速度
答案:问题规模
[单选题]以下关于数据结构的说法中正确的是( )。
数据结构的逻辑结构独立于其存储结构
数据结构的逻辑结构唯一地决定了该数据结构的存储结构
数据结构仅由其逻辑结构和存储结构决定
数据结构的存储结构独立于该数据结构的逻辑结构
答案:数据的逻辑结构独立于其存储结构
[单选题]数据结构研究的内容是( )。
包括以上三个方面
建立在相应逻辑结构和存储结构上的算法
数据的存储结构
数据的逻辑结构
答案:包括以上三个方面

点赞(0) dxwkbang
返回
顶部