1.删除链表节点
**分析:**首先用指针变量q指向结点A的后继结点B,然后将结点B的值复制到结点A中,最后删除结点B。
2.时间复杂度的计算
**分析:**当涉及嵌套循环的时候,我们可以直接分析内层循环即可,看内层循环走了多少次
3.堆排序以及与其他排序的区别:
解析:
问的是空间复杂度,堆排序的空间复杂度为0(1);
时间复杂度为0(nlogn);
思路:
分为创建堆和调整堆——>每调整一次的时间复杂度为0(logn),一共需要调整n-1次
其他:
1.选择排序: 时间复杂度无论最好和最坏和平均都为0(n^2);
在空间复杂度上与冒泡排序,插入排序,选择排序类似都为0(1);
2.快速排序: 时间复杂度为0(nlogn),最坏为0(n^2);空间复杂度为0(1)
3.归并排序: 时间复杂度均为0(nlogn),空间复杂度为0(n);
重点区别:
快速排序、归并排序和插入排序必须等到整个排序结束后
才能够求出最小的10个数
,而堆排序
只需要在初始堆的基础上
再进行10次筛选
即可,每次筛选的时间复杂度为O(log2n)
4.快速排序的思路:
方法论:
从两头往中间搜索,右边找小,左边找大,右边先走
**1.第一步:**右边找到了10,左边找到了21,交换
**2.第二步:**在上面的位置上,右边继续向前,遇到了上一步的10,左右相遇,所以10的位置就是20的基准位,结束
5.有向无向图和邻接表的转换
1
:无向图的表头节点数,表节点数:顶点个数,边2;
2
:有向图的表头节点数,表节点数:顶点个数,边1;
6.强连通图
1.首先它的本质只是一个连通图,任意两个顶点之间都存在一条有向路径,即从任意一个顶点出发可以到达图中的任意其他顶点。
2.有向完全图一定是强连通,反之不一定;
3.最少边为n=顶点数