为解决问题而选择数据结构的三步:
一.分析问题以确定任何算法均会遇到的资源限制.
二.确定必须支持的基本运算,并度量每种运算所受的资源限制.基本运算的实例包括向数据结构中插入一个数据项,从数据结构中删除一个数据项和查找指定的数据项.
三.选择最接近这些开销的数据结构.
ADT 抽象数据类型
它是指基于逻辑类型的数据类型以及这个类型上的一组操作,每一个操作由它的输入和输出定义.一个ADT的定义并不涉及它的实现细节,这些实现细节对于ADT的用户是隐藏的.
隐藏实现细节的过程称为封装.数据结构是ADT的物理实现,ADT的每一个操作均由一个或者多个子程序来实现.
问题:即对应一组输入就有一组相应的输出.问题的定义不能包含有关怎么样解决问题的限制.只有在问题被准确定义并完全理解后才能研究问题的解决方法.问题的定义应该包含对任何可行方案所需资源的限制.
算法:算法是指解决问题的一种方法或者一个过程.一个问题可以用多种算法来解决.一个给定的算法解决一个特定的问题.
一个算法应该包含如下性质:
一.正确性.
二.具体步骤.
三.确定性.
四.有限性.
五.可终止性.
程序:一个计算机程序被认为是使用某种程序设计语言对一个算法的具体实现.
posted @
2011-06-27 14:19 coolnothing 阅读(358) |
评论 (0) |
编辑 收藏
ICTCLAS是中科院计算所出品的中文分词程序包,在国内一直有着良好的口碑和很高的使用率。
对于一个测试语句
原字符串:一块勤奋地漂亮的一块钱,/打造经济的航空母舰。ABCD.#$% Hello World!\n又一段文本123辆 !3.0
其中包含了中文,英文,标点符号,乱七八糟符号及阿拉伯数字。
结果:一块/s 勤奋/a 地/u 漂亮/a 的/u 一/m 块/q 钱/n ,/w //nx 打造/v 经济/n 的/u 航空母舰/n 。/w ABCD.#$%/nx Hello/nx World/nx !/w 又/d 一/m 段/q 文本/n 123/m 辆/q
可以发现在ABCD.#$%/nx的分词结果有点不对,并没有很好的把英文单词和其他字符很好的分开.
在此处我加入了一个验证机制,修改过后的分词结果为:
一块/s 勤奋/a 地/u 漂亮/a 的/u 一/m 块/q 钱/n ,/w //nx 打造/v 经济/n 的/u 航空母舰/n 。/w ABCD/nx .#$%/un Hello/nx World/nx !/w 又/d 一/m 段/q 文本/n 123/m 辆/q
其中的/un表示未知字符的意思.
posted @
2011-06-23 12:59 coolnothing 阅读(259) |
评论 (1) |
编辑 收藏