有关字符串处理问题的原则
2008-03-24 17:33
706 查看
a、字符串的数据结构:如后缀数组
a1.散列。非常快的数据结构,而且较容易实现
a2.平衡树。这个结构即使是在输入不正当的情况下也有非常好的性能,并且已经优雅地打包到了C++标准模板库set和map的大多数实现中。
a3.后缀数组。初始化指向文本串中的每个字符的指针数组,将其排序,这样就得到了一个后缀数组。然后你就可以扫描该数组,找到其最近的字符串或使用二分查找法查找单词或词组。
b、使用库还是定制的组件?
C++的set、map和string使用起来都非常方便,便是其通用而强大的接口意味着其效率没有专用的散列函数高。其他库组件的效率很高:散列使用的strcmp,后缀数组使用的qsort。我看了一下bsearch和strcmp的库实现,来创建马尔科夫程序中的二分查找和wordncmp函数。
a1.散列。非常快的数据结构,而且较容易实现
a2.平衡树。这个结构即使是在输入不正当的情况下也有非常好的性能,并且已经优雅地打包到了C++标准模板库set和map的大多数实现中。
a3.后缀数组。初始化指向文本串中的每个字符的指针数组,将其排序,这样就得到了一个后缀数组。然后你就可以扫描该数组,找到其最近的字符串或使用二分查找法查找单词或词组。
b、使用库还是定制的组件?
C++的set、map和string使用起来都非常方便,便是其通用而强大的接口意味着其效率没有专用的散列函数高。其他库组件的效率很高:散列使用的strcmp,后缀数组使用的qsort。我看了一下bsearch和strcmp的库实现,来创建马尔科夫程序中的二分查找和wordncmp函数。
相关文章推荐
- 匿名方法
- 随机文本生成技术---order-k马尔科夫链文本生成技术
- 迭代器
- ATL的GUI程序设计(1)
- class object assign operater
- 不完全类型
- 文件上传
- 经典js收藏
- C#3.0新特性之扩展方法介绍
- Variants 单元下的公用函数目录
- HTML快速入门11——如何分窗口,frame、target、base、hr
- C# 3.0新特性体验之Lambda表达式
- 素数
- 验证11和12位的数字.
- Graphics 单元下的公用函数目录
- 如何更新gridcontrol
- HTML快速入门10——主页制作工具简介,UL、OL、DL
- C#3.0新特性之隐式类型局部变量的使用
- The Greenwood Boys
- C# 3.0 新特性概览