有关字符串处理问题的原则

来源:互联网 发布:自动化编程 编辑:程序博客网 时间:2024/05/19 04:05
a、字符串的数据结构:如后缀数组
  a1.散列。非常快的数据结构,而且较容易实现
  a2.平衡树。这个结构即使是在输入不正当的情况下也有非常好的性能,并且已经优雅地打包到了C++标准模板库set和map的大多数实现中。
  a3.后缀数组。初始化指向文本串中的每个字符的指针数组,将其排序,这样就得到了一个后缀数组。然后你就可以扫描该数组,找到其最近的字符串或使用二分查找法查找单词或词组。
 b、使用库还是定制的组件?
    C++的set、map和string使用起来都非常方便,便是其通用而强大的接口意味着其效率没有专用的散列函数高。其他库组件的效率很高:散列使用的strcmp,后缀数组使用的qsort。我看了一下bsearch和strcmp的库实现,来创建马尔科夫程序中的二分查找和wordncmp函数。