免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、算法设计与分析基础(21周前交,要求上交源代码,需要实验报告,语言不限)编程实现:1、计算两个不全为0的非负整数m和n的最大公约数(1)用欧几里德算法实现;(2)用连续整数检测算法实现;(3)用质因数分解算法实现;2、Horspool算法(Page 195)3、BM算法(Page 197)最大公约数定义:两个不全为0的非负整数m和n的最大公约数记为gcd(m,n),代表能够整除(即余数为0)m和n的最大正整数。- 一、欧几里得算法第一步:如果n=0,返回m的值作为结果,同时过程结束;否则进入第二步第二步:m除以n,将余数赋给r第三步:将n的值赋给m,将r的值赋给n,返回第一步算法 Euclid(m,n) /使用欧几里德算法计算gcd(m,n) /输入:两个不全为0的非负整数m,n /输出:m,n的最大公约数 if n=0 return n while n!=0 do rm mod n mn n r return n-二、连续整数检测法第一步:将minm,n的值赋给t第二步:m除以t,如果余数为0,进入第三步;否则进入第四步第三步:n除以t,如果余数为0,返回t的值作为结果;否则进入第四步第四步:把t的值减1。返回第二步算法: /使用连续整数检测法计算gcd(m,n) /输入:两个不全为0的非负整数m,n /输出:m,n的最大公约数 if n=0 return n t=minm,n while t0 do if (m mod t)=0 if (n mod t)=0 return t else t=t-1 else t=t-1 return t -三、中学中计算gcd(m,n)的过程第一步:找到m的所有质因数第二步:找到n的所有质因数第三步:从第一步和第二步求得的质因数分解式中找出所有的公因数(如果p是一个公因数,而且在m和n的质因数分解式分别出现过pm和pn次,那么应该将p重复minpm,pn次)第四步:将第三步中找到的质因数相乘,其结果作为给定数字的最大公约数Horspool算法这个算法是由R.Nigel Horspool在1980年提出的。其滑动思想非常简单,就是从后往前匹配模式串,若在某一位失去匹配,此位对应的文本串字符为c,那就将模式串向右滑动,使模式串之前最近的c对准这一位,再从新从后往前检查。那如果之前找不到c怎么办?那好极了,直接将整个模式串滑过这一位。例如:文本串:abdabaca模式串:baca倒数第2位失去匹配,模式串之前又没有d,那模式串就可以整个滑过,变成这样:文本串:abdabaca模式串: baca发现倒数第1位就失去匹配,之前1位有c,那就向右滑动1位:文本串:abdabaca模式串: baca实现代码:#include #include #include #include using namespace std;int Horspool_match(const string & S,const string & M,int pos);int main( ) string S=abcdefghabcdefghhiijiklmabc; string T=hhiij; int pos = Horspool_match(S,T,3); coutnposendl; system(pause); return 0;int Horspool_match(const string & S,const string & M,int pos) int S_len = S.size(); int M_len = M.size(); int Mi = M_len-1,Si= pos+Mi;/这里的串的第1个元素下标是0 if( (S_len-pos) -1) & (Si-1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年陕西省选调生招录备考题库(面向中国科学技术大学)及参考答案详解1套
- 2025徐汇区行政服务中心招聘会务主管备考题库含答案详解(精练)
- 2025重庆涪陵区义和街道工作委员会招聘备考题库及参考答案详解1套
- 浙江银行招聘-金华银行2026届校园招聘110人备考题库附答案详解(巩固)
- 九江市总工会2025年公开招聘工会社会工作者备考题库【25人】及答案详解(全优)
- 2025广西上林县应急管理局招聘编外专业森林消防队员4人备考题库附答案详解(达标题)
- 2025宁东基地管委会招聘党建指导员5人备考题库附答案详解(精练)
- 2026中国建设银行大连市分行校园招聘90人备考题库参考答案详解
- 2025四川遂宁顺邦安防服务有限公司招聘市公安局警务辅助人员16有备考题库附答案详解(满分必刷)
- 2025云南西双版纳勐海县消防救援局招聘消防文员1人备考题库含答案详解(预热题)
- 列车员个人先进事迹范文
- 数控车床基本操作按钮
- EIM Starter Unit 8 Dont do that单元知识要点
- 美丽乡村建设项目重点难点施工区技术措施
- 05.辩论的基础知识
- 国家开放大学《理工英语3》章节测试参考答案
- 钢结构施工安全晨会记录
- JJG 924-2010转矩转速测量装置
- 第六单元 中华民族的抗日战争 复习课件 部编版八年级历史上册
- 《细胞工程学》考试复习题库(带答案)
- 师说一等奖优秀课件师说优质课一等奖
评论
0/150
提交评论