数据结构与算法
算法的基本特性:可行性,确定性,有穷性,拥有足够的情报。
算法是指解题方案准确而完善的描述。
算法复杂度包括时间复杂度和空间复杂度。
时间复杂度:执行算法所需要的计算机工作量。
空间复杂度:执行算法所要的内存空间。
数据结构分为逻辑结构和存储结构。常用的存储结构有顺序结构、链式存储结构、索
引存储结构、
数据逻辑结构:反映数据元素之间逻辑关系的数据结构。
数据存储结构:数据的逻辑结构在计算机存储空间中的存放形式。
队:FIFO,一头进,另一头出来。循环队列,一般题型:概念、计算队列中还有几个
元素(尾指针减去头指针)。
栈:FILO,只能从一个头进,出。一般题型:概念、问 A B C D 四个选项中不能出栈的
次序。
线性表的基本概念。记住线性表顶多有一个头节点和一个后继节点。所以栈、队列、
单向链表都是线性表,树、双向链表不是线性表。
树;叶子节点最多的个数:2
n-1
个节点。一共的节点数目 2
n
-1,节点为 2 的数目为节点
为 1 的数目减一。也就是 n
2
=n
0
-1
满二叉树:_____________________。
完全二叉树:_____________________。
二叉树中,度为 0 的数目比度为 2 的数目多一个。 n
0
=n
2
+1
二叉树的前序遍历、中序遍历、后序遍历是考试重点。
顺序查找:长度为 n 的线性表,平均要进行 n/2,最坏要进行 n 次比较。(常考)
二分查找:对于长度为 n 的线性表,在最坏情况进行 log
2
n 次。
要背的话:
算法的时间复杂度和空间复杂度没有必然的联系。
一个数据结构的逻辑结构根据需要可以有多个存储结构。存储结构的不同,会造成处
理的效率不同。
栈具有记忆性。如果要存的数据是 1 2 3 4 5,栈可以不顺序存储。
我们存放数据的时候,存储空间不一定是连续的,并且各个元素的存储顺序可以是任
意的。如:链表。
在线性链表中查找一个元素比在顺序表中查找一个元素要快,
冒泡排序、选择排序、交换排序、堆排序中平均排序次数最快的是 堆排序。
能够用二分查找的是顺序存储的有序线性表。