




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、找出变位词的集合,算法分析与复杂性理论(期末大作业),文成 2150230509 计算机于软件学院 软件工程,给定一本英语单词词典,找出所有的变位词集。所谓的变位词是指,组成各个单词的字母完全相同,只是字母排列的顺序不同。例如,tea和eat是变位词,同属一个集合,找出所有这种集合。,问题描述,问题一:如何判断两个单词是否为变位词。,思路二: 将两个字符串按照字母表顺序排序,看排序后的字符串是否相等,如果相等则是变位词。,思路一: 如果两个单词是变位词,那么它们具有相同的长度,且每个英语字母的个数是一样的。一个单词组成字母所生成的排列就可能是它变位词。,问题二:如何从字典中找出所有变位词的集合
2、。,思路一: 我们已经知道如何判断两个单词是否为变位词,最直接的方法就是针对每一个单词跟字典中的其他单词进行比较。(有n个单词就要比较n2次。效率低下,我们需要找出效率更高的方法),思路二: 标识字典中的每一个单词,使得在相同变位词类中的单词具有相同的的标识,然后集中具有相同标识的单词。将每个单词按照字母表排序,排序后得到的字符串作为该单词的标识。(这种方法的时间效率根据你使用的排序算法不同而不同),那么对于该问题的解题过程可以大致分为三步: 第一步,对单词内部的字母进行排序得到标识; 第二步,将所有的单词按照其标识的顺序排序; 第三步,将同一个变位词类中的各个单词放到同一行中。,这个问题使用
3、面向过程的方法更为简单,在我的程序中对应以下几个方法。按顺序执行以下三个方法,其中前一个步骤程序的输出作为下一个步骤程序的输入。 Sign() Reorder() Arrange(),下面给出一个简单的例子,仅有6个单词的字典的处理过程 tea apple ate said dais eat,tea apple ate said dais eat,aet aelpp aet adis adis aet,sign(); 对每个输入的单词进行标识,每个单词的标识就是依照字母进行排序后的串,在这里我使用的是快速排序。,sign,tea apple ate said dais eat,aet aelp
4、p aet adis adis aet,reorder(); 对标识后的单词,按照字典序进行排序,使得具有相同标识的单词都排在一起。 要区分的是,这里是对单词间的排序,而上一步是对单词中的字母的排序。,reorder,dais said apple ate eat tea,adis adis aelpp aet aet aet,arrange(); 对之前的结果进行整合,具有相同标识符的单词都挨着。后面只需要将同一个变位词类中的各个单词放到同一行中,arrange,dais said apple ate eat tea,adis aelpp aet,dais said apple ate ea
5、t tea,adis adis aelpp aet aet aet,考虑实际情况: 读入的是大词典文件,有单词、音标、标点符号、阿拉伯数字、例句等信息,我们需要做一些特殊处理(预处理)。,例如: 对于无用的符号在读文件时要过滤掉。 对于大写的单词,统一转换成小写。 对于重复的单词只保留一个。 ,所给算法主要针对读入的是字典的索引,其处理步骤就按照之前叙述的就可以了。,效率分析,第一步:对单词进行排序得到标识 (相当于对组成单词的字母间做快速排序,实际上有m个单词就要做m次快排。这里主要影响因素是单词字母的个数,实际上每个单词的字母数都不会太多。) 第二步,将所有的单词按照其标识的顺序排序; (
6、这里的输入规模是单词的个数,也是效率的主要影响因素。若单词的个数为n,其时间复杂度为O(nlogn) 第三步:将同一个变位词类中的各个单词放到同一行中。 (在一次线性扫描中就能完成,时间复杂度为O(n)),随着输入规模的增大,理论上该程序的效率应该符合右图。即快速排序的效率。,主要影响程序效率的是第二步的对单词的快速排序,不重复的单词的个数对算法效率的影响最大。,实际效率分析: 为了简化实验过程,我将输入词典的单词个数作为输入的规模。分别采用10000个单词,20000个单词,30000个单词,40000个单词的样本数据作为输入。为了方便实验,我从英语小说中截取相应字数的段落来分析。,一般来说一本四六级英语词典的索引分别有6600和7500个单词,一般的英语词典则更多,所谓大词典,应该有上万个单词。我实验的测试用例选取1万到5万个单词的文本文件作为输入,分别统计耗时。,图形上: 形状基本符合n(线性增长),与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年甘肃省高考历史试卷真题(含答案解析)
- 电影拍摄项目合作及投资分配协议
- 印刷制作及版权许可协议
- 2025年一建考试《机电工程管理与实务》案例分析题库-电气设备安装与调试技术解析
- 传统节日中的故事童话色彩作文5篇范文
- 2025年导游资格证考试笔试旅游服务质量管理与旅游行业法规解读试卷
- 2025年医用X射线设备项目立项申请报告模板
- 一场特殊的比赛写人记事(10篇)
- 2025年消防安全培训考试题库实操篇:消防安全应急预案试题
- 2025年病煤防治工作试题
- 《矿用防爆车辆电动自动转向系统技术要求》
- 代收房租协议书范文
- 民法典合同编解读之保证合同
- 《中药学》课件-中药思政元素案例
- 广东省深圳市宝安区2022-2023学年二年级下学期期末数学试卷
- 译林版英语八年级下册语法知识总结
- 范卿平人教版初三化学讲义全集
- 幼儿园规范化幼儿园参评自评报告
- 产科运用PDCA循环降低入室新生儿低血糖发生率品管圈成果汇报
- 《水资源管理》机考题库及答案开放大学考试题库 答案
- 菜鸟WMS(大宝)操作手册 (修复的)
评论
0/150
提交评论