正文
- 通常从四个方面评价算法的质量,分别是
正确性
、易读性
、强壮性
和高效性
- 数据的储存结构:数据元素及其关系在计算机储存器中的储存表示,也称为数据的物理结构
- 一个算法的时间复杂度是 0 ( n 3 + n 2 l o g 2 n + 14 n ) / n 2 0(n^3+n^2log_2 n+14n)/n^2 0(n3+n2log2n+14n)/n2,其数量级表示为 O ( n ) O(n) O(n)
- 链接储存的特点是利用
指针
来表示数据元素之间的逻辑关系 - 空格串是指
至少包含一个空格字符所组成的字符串
,其长度等于空格的个数
- 数据的逻辑结构是从逻辑关系描述数据,它与数据的
储存
无关,是独立于计算机的 - 一种抽象数据类型包括
数据描述
、操作声明
- 在一个带头节点的单向循环链表中,p指向尾节点的直接前驱,则指向头节点的指针head可用p表示为head=
P->next->next
- 栈顶的位置是随着
出栈和入栈
操作而变化的 - 评价算法的主要标准是什么?
时间、空间复杂度,正确性,易读性,高效性,健壮性
- 单链式储存结构的优缺点有哪些?
优点:(1)插入或者删除元素时很方便,一般不需要移动节点。(2)动态分配空间比较灵活,不需要申请连续的最大储存空间,便于动态管理
缺点:(1)检索必须沿链进行,储存密度小,储存空间利用率低,不能随机存取元素。必须通过指针访问元素,在O(n)内查找修改元素。(2)增加指针的空间开销。
- 线性表有哪些特点?
(1)
有穷性
:一个线性表中的元素个数总是有限的
(2)一致性
:一个线性表中的所有元素的性质相同。从实现的角度看,所有元素具有相同的数据类型
(3)序列性
:一个线性表中所有元素之间的相对位置是线性的,即存在唯一的开始元素和终端元素,除此之外,每个元素只有唯一的前驱元素和后继元素。各元素在线性表中的位置只取决于它们的序号,所以在一个线性表中可以存在俩个相同值的元素
- 树与二叉树有什么区别?
1)树中结点的最大度数没有限制,而二叉树结点的最大度数为2;
2)树的结点无左、右之分,而二叉树的结点有左、右之分。
3)树是一种简单的非线性结构,所有元素之间具有明显的层次特性。4)在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称树的根。每一个结点可以有多个后件,称为该结点的子结点。没有后件的结点称为叶子结点。
5)二叉树的特点:非空二叉树只有一个根结点,每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。小
(1)性质不同:树是一种数据结构,二叉树是每个节点最多有两个子树的数据结构 (2)节点不同:树的每个节点有零点或多个子节点,二叉树每个节点最多有两个子树(3)种类不同:树的种类包括无序树,有序树,二叉树和霍夫曼树等,二叉树的种类包括完全二叉树,满二叉树和平衡二叉树
- 已知一个6*5的稀疏矩阵如图所示,
试:
(1)写出它的三元组线性表:
(2)给出三元组线性表的顺序储存表示:
((1,5,1))…
(2)
i | j | a i , j a_{i,j} ai,j |
---|---|---|
1 | 5 | 1 |
补充:
算法稳定性:“情绪不稳定,快些选一堆零食解压吧”,其中快指快速排序,些指希尔排序,选指简单选择排序,堆指堆排序,这四种排序方式是不稳定的。