- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
《算法与程序实践》习题解答9——查找算法
查找的定义
根据给定的某个值,在查找表中确定一个其关键字等于给定值的记录或数据元素。基本的查找算法包括顺序查找和折半查找两种。
关键字的概念
关键字是数据元素(或记录)中某个数据项的值,可以标识一个记录,若能唯一标识,则称为主关键字,否则称为次关键字。
查找的结果
若查到其关键字等于给定值的记录,则称“查找成功”,否则称“查找失败”。
查找算法效率的度量
平均查找长度ASL:在查找其关键字等于给定值的过程中,需要和给定值进行比较的关键字个数的期望值称为查找成功时的平均查找长度。
其中,n是结点的个数;是查找第i个结点的概率,是找到第i个结点所需要的比较次数。
顺序查找基本思想
从线性表的一端开始,依次将每个元素的关键字同给定值K进行比较,若某元素关键字与K相等,则查找成功;若所有元素都比较完毕,仍找不到关键字为K的元素,则查找失败。
顺序查找示例
12
12
21
30
35
38
40
48
55
56
60
64
1234567891011
查找55
顺序查找算法实现
intOrder_Search(intarray[],intn,intkey)
{
inti;
array[n]=key;
/*for循环后面的分号必不可少*/
for(i=0;key!=array[i];i++);
return(in?i:-1);
}
折半查找
折半查找法也称为二分查找法,它充分利用了元素间的次序关系(要求数据集合有序),二分法是分治算法的一种特例。分治算法的基本思想是将一个规模为N(比较大)的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。
在分治算法中,若将原问题分解成两个较小的子问题,我们称之为二分法。由于二分法划分简单,所以使用非常广泛。其中最经典的应用就是二分法检索。
折半查找的先决条件
表中结点按关键字有序,且顺序(一维数组)存储。
折半查找思想
(1)求有序表的中间位置mid
(2)若r[mid].key==k,查找成功;
若r[mid].keyk,在左子表中继续进行二分查找;
若r[mid].keyk,则在右子表中继续进行二分查找。
折半查找示例
1221303538
12
21
30
35
38
40
48
55
56
60
64
1234567891011
i=1, j=11, m=(i+j)/2=6. kr[m]:在左半部分继续查找。
i=1, j=m-1=5, m=(i+j)/2=3. kr[m]:在右半部分继续查找。
i=m+1=4, j=5, m=(i+j)/2=4. r[m]==k:查找成功。
(2)k=54
i=1, j=11, m=(i+j)/2=6。 r[m]k:在右半部分继续查找。
i=m+1=7,j=11, m=(i+j)/2=9。 r[m]k:在左半部分继续查找。
i=7, j=m-1=8, m=(i+j)/2=7。 r[m]k:在右半部分继续查找。
i=m+1=8,j=8, m=(i+j)/2=8。 r[m]k:在左半部分继续查找。
i=8, j=m-1=7, ij:查找失败。
CS98:字符串计数
(来源:ACM程序设计竞赛基础教程(俞经善等)P12)
问题描述:
给出m个字符串,要求输出重复n次的字符串有几个。
输入:
先给定一个N,N≤100000,接着输入N个字符串。
输出:
对于每组测试数据,输出若干行,每行两个正整数,第一个数表示重复的次数,第二个数表示在此重复次数下有几种不同的字符串。
样例输入:
5
BBA
BBA
BEA
DEC
CCF
样例输出:
CASE1:
1 3
2 1
解题分析:
对着N个字符串进行排序,然后依次统计即可,主要是考查对qsort函数的使用。Qsort的基本用法是qsort(que,n,sizeof(que[0],cmp)),que表示的是需要排序的序列的首地址,n表示序列中的元素,sizeof求的是该序列中单个元素所占的空间大小,cmp是排序过程中用到的比较函数,可以根据对cmp函数的不同写法,来规定排序的结果是递增或者递减。
通常写法:
intcmp(constvoid*a,constvoid*b){ //从小到大排序
abc*f1=(abc*)a;
abc*f2=(abc*)b;
r
您可能关注的文档
- 《算法与程序实践2》习题解答-递归3.docx
- 《算法与程序实践2》习题解答-动态规划.docx
- 《算法与程序实践2》习题解答-排序.docx
- 《算法与程序实践2》习题解答-搜索算法.docx
- 《算法与程序实践2》习题解答-贪心算法.docx
- 2022-2023学年福建省厦门市第一中学物理九上期末调研模拟试题含解析.pdf
- 2021年除夕的小学作文锦集8篇 .pdf
- 2021年湘教版九年级化学上册月考月考试卷及答案【学生专用】.pdf
- 2021部编人教版二年级上册语文教学工作计划及教学进度安排 .pdf
- 2020-2021中考数学 二元一次方程组易错压轴解答题专题练习(含答案.pdf
- +第13课亚非拉民族独立运动导学案 高中历史统编版(2019)必修中外历史.pdf
- 2022-2023学年山东省枣庄市滕州市荆河街道滕南中学七年级(上)期末语文.pdf
- 2021护士年终工作总结5篇 .pdf
- 2017新人教版部编二年级上册语文教学工作计划 .pdf
- 2007-2008-2Java语言程序设计期中11考试试题 .pdf
- 2021-2022学年三年级上学期数学期末试卷A卷 .pdf
- 2021年福建省漳州市漳浦第一中学高一地理模拟试题含解析 .pdf
- 2020年资格考试《中级法律法规与综合能力》考前练习(第41套).pdf
- 2021年优质课《莫高窟》教学设计与反思 .pdf
- 2021-2022学年湖南省娄底市新化县九年级(上)期末化学试卷(附详解).pdf
最近下载
- 五四制初中一年级中华优秀传统文化教学设计.pptx VIP
- 《微生物与健康》课件科学六年级上册.pptx
- 七年级上册生物学《生物体的结构层次》单元作业设计.docx
- 电子信息工程职业规划 (第二版).pptx VIP
- 党的二十届三中全会精神测试题300道(单选、多选、判断、填空).docx VIP
- 部编教材年级识字课教学.ppt VIP
- 贵州省贵阳市2024-2025学年高一上学期10月联合考试(一) 数学 PDF版含解析.pdf
- 基于Android的个人生活行为记录及习惯养成平台的设计与实现-毕业设计.doc
- 中国传媒大学-节目主持艺术基础(第二版)-课件.pptx
- 纤维增强复合材料在建筑工程结构加固中的应用(经济论文资料).doc
网络工程师持证人
本人已从事浙江省工程咨询5年,对浙江省内工程信息非常熟悉,可获取新建工程相关联系人、设计院、业主等关键信息。另外从事楼宇自控专业已10年,考取了一建二建等资格证书,有关考试方面的问题(考试心得、方法、学习资料等)都欢饮来咨询交流。
文档评论(0)