数据结构与算法的定义
数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的关系和运算的学科。
算法是:解决问题的有限运算序列
算法分析的两个主要方面是:空间复杂度和时间复杂度
算法分析的目的是:分析算法的效率以求改进
算法的计算量的大小称为计算的复杂性
数据结构的抽象操作的定义与具体实现有关。(×)
下面关于算法说法正确的是()。
A、算法最终必须由计算机程序实现
B、为解决某问题的算法同为该问题编写的程序含义是相同的
C、算法的可行性是指指令不能有二义性
D、以上几个都是错误的
时间复杂度分析
- 以下程序段中语句“x=x+1”的语句频度为()。
x=1
for i in range (1,n+1):
for j in range(1,i+1):
for k in range(1,j+1):
x=x+1
A、n(n+1)(2n+1)/2
B、n(n+1)(n+1)/2
C、n(n+1)(2n+1)/6
D、n(n+1)(n+2)/6
逐层分析
第一个循环中的i可以取值为1,2,3,……,n
第二个循环中的j可以取值为(1),(1,2),(1,2,3),……(1,2,3,……n)
- 设n是描述问题规模的非负整数,下列程序段的时间复杂度是()。
x=2
while x<n/2:
x=2*x
A、O(logn)
B、O(n)
C、O(nlogn)
D、O(n2)
存储结构
以下与数据的存储结构有关的术语是()。
A、有序表
B、链表
C、有向图
D、树
链式存储设计时,各结点间的存储单元的地址不一定连续
顺序存储设计时,各结点间的存储单元的地址一定连续
数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为:链式存储结构
顺序存储结构中数据元素之间的逻辑关系是由存储位置表示的。
数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要高
顺序存储方式只能用于存储线性结构。(×)
原因:完全二叉树可以用顺序存储结构来存储,但完全二叉树是非线性结构
TODO: 暂时未学二叉树,不理解
数据的逻辑结构反映数据元素之间的次序关系,它依赖于数据的存储结构。(×)
原因:数据的逻辑结构,和存储结构(物理结构)之间没有直接的关系,逻辑结构可以存储在各式各样的物理结构中,不要混淆,两者各不相干