随笔分类 -  算法

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