【发布时间】:2013-03-28 06:32:15
【问题描述】:
我想在 C/C++ 中实现CYK algorithm,但在各种网站上提供的伪代码并不能回答如何有效地实现它。我写了一个版本,它使用了一些 stl 结构,比如 map 和 sets,但是速度很慢。我正在考虑通过仅使用二进制操作来改进我的实现,但我不知道如何用集合存储我的表。假设我们只有 8 个非终端符号和 26 个终端符号。我正在考虑使用无符号字符表(2^8 -> 0-1 的 8 个位置)来存储有关产品的信息,但我不知道如何存储它。
你能给我一些帮助或线索吗?
【问题讨论】:
-
可能很有趣:上一个问题 (stackoverflow.com/questions/13728581/…) 引用了这个 C++ 实现 nitishkr.wordpress.com/2011/03/29/cyk-algorithm-implementation
-
你用地图和布景做什么?这里的伪代码:en.wikipedia.org/wiki/CYK_algorithm 使用布尔数组。唯一出现的集合是规则集合,...
标签: c++ algorithm stl implementation cyk