随笔分类 - 算法
摘要:unsigned int SDBMHash(char *str){ unsigned int hash = 0; while (*str) { // equivalent to: hash = 65599*hash + (*str++); hash = (*str++) + (hash << 6)
阅读全文
摘要:模式匹配算法的本质就是:扫描+特征比较; 特征提取:核心是目标特征分析 1、整体特征:整体hash; 2、边界特征:忽略中间量,仅对首尾做特征提取; 3、分析特征:适合有重复字符的匹配模式; 4、统配特征:边界特征+限制特征+位数; 扫描: 1、逐位扫描; 2、边界特征扫描; 3、
阅读全文
摘要:递归与循环的共同点:同一计算被执行多次; 递归与栈的共同点:递归依靠栈帧来存储先进后出的计算,栈存储先进后出的数据;共同点是存储。 或者可以这么理解:递归解决的是有依赖顺序关系的多个问题。 递归与栈的关系 因为程序中的栈结构是顺序栈,因此,如果递归的次数过多,程序中的数据过大,在不断的压栈过程中造成
阅读全文
摘要:递归的本质在于部分计算的延迟; 考察二叉树的先根遍历,部分计算在递归时会存储在函数调用栈的下一条命令的内存中。 所谓的下一条命令即为未完成的计算。 在二叉树遍历中,未完成的节点的计算被存储在函数调用栈的栈帧中,具有优先计算权的工作完成以后,这些存储的计算就会被执行。
阅读全文