百度笔试记录
BF算法的复杂度?
BF算法(Brute Force),即暴力算法,是普通的模式匹配算法。BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。
BF算法复杂度 O(M*N)
Dijkstra算法
迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。
它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。
Dijkstra算法一般的表述通常有两种方式,一种用永久和临时标号方式,一种是用OPEN, CLOSE表的方式,这里均采用永久和临时标号的方式。注意该算法要求图中不存在负权边。
IPv4和IPv6报文对比
typedef int (*pFunc)(int, int)
typedef int (pFunc)(int, int)
申明一个指针变量pFunc, 指向int ()(int, int)
从而可以 pFunc func;
int add(int a,int b){
return (a+b);
}
typedef int (* func)(int ,int ) ;
void main(){
func f = add; //若不用typedef,可以直接func = add (此时,func就是变量,而非变量别名)
int n = f(1,2);
cout << n << endl;
}
希尔排序
希尔排序(Shell Sort)是插入排序的一种算法,是对直接插入排序的一个优化,也称缩小增量排序。
希尔排序是非稳定排序算法。
希尔排序是将待排序的数组元素 按下标的一定增量分组 ,分成多个子序列,然后对各个子序列进行直接插入排序算法排序;然后依次缩减增量再进行排序,直到增量为1时,进行最后一次直接插入排序,排序结束。
树阶数
树的阶数表示一个节点最多能有多少个子节点,也就是每个节点上最多的键值个数。比如二叉树的阶数就是2