最近在复习数据结构,所以把做的习题做个总结加小知识点,如果大家有遇到这方面的问题就可以参考一下了,废话不多说,直接开始吧。
1.从一个长度为n的顺序表中删除第i个元素(1<= i <= n)时,需向前移动 (n - i)个元素。
2.对于一个具有n个顶点的无向连通图,它包含的连通分量的个数为( 1 )。
在无向图G中,若从顶点Vi到顶点Vj有路径(当然从Vj到Vi也一定有路径),则称 Vi和Vj 是联通的。若V(G)中任意两个不同的顶点Vi 和Vj都联通(即有路径),则称G为连通图。
无向图的极大联通子图称为G的 联通分量 。任何连通图的联通分量只有一个,即是其自身。
3.此算法的时间复杂度是( O (m*n))
for(i = 0 ; i < m ; i++)
for(j = 0 ; j < n ; j++)
a[i][j] = i*j ;
4.对线性表进行二分查找时,要求线性表必须:
- 以顺序方式存储,且结点按关键字有序排序。
5.等概率查找时,采用顺序查找方法查找长度为 n 的线性表时,每个元素的平均查找长度为
(n+1)/2
6.由二叉树的前序和中序遍历或中序和后序遍历,可以唯一确定一棵二叉树。
7.就平均时间而言,下列排序方法中最差的一种是:(D)
A.堆排序 最坏时间复杂度:O(n log 2(n))
B.快速排序 平均时间复杂度:O(n log 2(n))
C.希尔排序
D.直接选择排序 平均时间复杂度:O(n2)
- 插入排序:
1.直接插入排序:算法平均时间复杂度 O(n2)
需要监视哨时的空间复杂度是:S(n)=O(1)
设置监视哨的作用:
①备份待排序元素
②防止扫描指针越界,指针j最坏情况下终结在监视哨处
是稳定的排序方法
2.希尔排序:
时间复杂度是 n 和 d 的函数:
O ( n 1.25 ) ∼ O ( 1.6 n 1.25 ) \mathbf{O}\left(n^{1.