一个简单的问题,那位能给个优化的算法? 程序中要根据汉字的拼音缩写来查找相应的汉字,如"DN",查出的是"电脑".像这样的缩写有上百条,我的实现是用if语句或switch语句,这样假设查的是"ZY"(专业),程序就会匹配到最后才能匹配成功(按首字母升序排列).这样效率会低很多,不知道这样的问题又没有优化的算法?那位能给个事例呀,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把缩写存进数据库,然后用like来查询。 程序启动时先初始化一个HashTable,把所有汉字以拼音缩写为Key存入即可 或者用System.Collections.Specialized.StringDictionary其键被强类型为字符串,效率高些 将数据导入到hashtable或类似对象,直接用hashtable或类似方式查询。hashtable之类的查询速度应该算很快的,而且和数据的多数没有太大(也不是完全没有关系,但是远小于线性关系)关系,其算法的主要速度取决于产生hashcode的速度。 StringDictionary myCol = new StringDictionary();myCol.Add( "ZY", "专业" );//……string key = "ZY";string 汉字 = myCol[key];//专业 StringDictionary myCol可以声明为类成员,在程序启动时就初始化 只要词典不复杂,直接读到内存即可。如果词典过大。可以建立索引,比如a~z为一级索引。让后再有:a,ao,ba,bi..... 从实际看 直接用.net里的 字典类 好了 求在线会员统计的思路? 继承用 base 与 this 的区别是什么? 100分(讲得好可以再加) 求 HashTable/字典/散列表 的内部算法原理! 什么是事件? DataGrid问题? 如何将一个DataGrid中选中的内容在另一个DataGrid中显示?大家帮忙 能推荐些精典文章看看吗?比如今天你多态了吗 商品表的维护(web) 请问如何从DataSet中取出表中一行数据,急! 找书(不急) 在一個類中怎么得到我當前的路徑? 为什么我用C#写的WINDOWS程序, 随着运行时间的推移.占用内存越来越大
System.Collections.Specialized.StringDictionary
其键被强类型为字符串,效率高些
myCol.Add( "ZY", "专业" );
//……
string key = "ZY";
string 汉字 = myCol[key];//专业
如果词典过大。可以建立索引,比如a~z为一级索引。让后再有:a,ao,ba,bi.....