先来点真实的——思维导图,知识需要形成框架存在脑子里,就要用到思维导图。
后面会加一些自己的 理解思考 和 一些错题集。
思维导图
错题集
1.1.3 (3)、以下属于逻辑结构的是( )
A 顺序表 B 哈希表 C 有序表 D 单链表
正确答案选C
分析:ABD是三种不同的数据结构,既可以描述逻辑结构,又可以描述存储结构和数据运算。而有序表指关键字有序的线性表,仅描述了元素之间的逻辑关系。所以有序表是逻辑结构。
1.1.3 (4)、以下与数据的存储结构无关的术语是( )
A 循环队列 B 链表 C 哈希表 D 栈
————————分割线————————
错误原因:四种存储结构没有记牢。
分析: 存储结构包括:顺序存储、链式存储、散列存储、索引存储。
循环队列(易错)是用顺序表表示的队列,是一种数据结构。
而栈是一种抽象数据结构,既可以用顺序表表示顺序栈,也可以用链表表示链栈,和存储结构无关。
正确答案选D
1.2.3 (1)、一个算法应该是( )
A 程序 B 问题求解步骤的描述 C 要满足五个基本特性 D A和C
————————分割线————————
错误原因:算法的定义。
分析: 中山大学某年考研原题。考察算法定义,其中C是算法的必要条件。
正确答案选B
1.2.3 (2)、某算法的时间复杂度为O(n^2),表明该算法的( )
A 时间规模等于n^2 B 执行时间等于n^2 C 执行时间与n^2成正比 D 时间规模与n^2成正比
————————分割线————————
错误原因:时间复杂度的含义。
分析: 时间复杂度为O(n^2),说明时间复杂度T(n)<=c*n^2(c为常数),即T(n)=O(n^2),问题规模仍然是n。
正确答案选C
1.2.3 (6)、已知两个长度为m和n的升序链表,若将他们合并成长度为m+n的降序链表,则最坏情况下的时间复杂度是( )
A O(n) B O(mn) C O(min(m,n)) D O(max(m,n))
————————分割线————————
分析: 当一个链表元素比较完后,另一个链表的剩余元素直接插入即可。最坏的情况就是元素两两比较,2max(m,n)>=m+n,故时间复杂度为O(m,n)
正确答案选C
1.2.3 (11)、以下算法(m++)语句执行的次数为( )
int m = 0,i,j;
for(i=1;i<=n;i++)
for(j=1;j<=2*i;j++)
m++;
A n(n+1) B n C n+1 D n^2
————————分割线————————
分析:考察求和公式!n(a1+an)/2 = 1+2+3+...+n
正确答案选A