- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法分析实验题目算法分析实验题目
一、 算法设计与分析基础(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
r←m mod n
m←n
n← r
return n
二、连续整数检测法
第一步:将min{m,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=min{m,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重复min{pm,pn}次)
第四步:将第三步中找到的质因数相乘,其结果作为给定数字的最大公约数
Horspool算法
这个算法是由R.Nigel Horspool在1980年提出的。其滑动思想非常简单,就是从后往前匹配模式串,若在某一位失去匹配,此位对应的文本串字符为c,那就将模式串向右滑动,使模式
串之前最近的c对准这一位,再从新从后往前检查。那如果之前找不到c怎么办?那好极了,直接将整个模式串滑过这一位。
例如:
文本串:abdabaca
模式串:baca
倒数第2位失去匹配,模式串之前又没有d,那模式串就可以整个滑过,变成这样:
文本串:abdabaca
模式串: baca
发现倒数第1位就失去匹配,之前1位有c,那就向右滑动1位:
文本串:abdabaca
模式串: baca
实现代码:
#include iostream
#include vector
#include string
#include cstdlib
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);
cout\nposendl;
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) M_l
您可能关注的文档
最近下载
- 《人工智能导论》课件.pptx VIP
- 2021-2022学年重庆市渝北区人教版五年级上册期末调研测试数学试卷(含答案解析).pdf VIP
- 接收普通高等学毕业生.doc VIP
- 三年级上册英语期末测试题及答案.docx
- 2024注册中级安全工程师《安全生产管理》讲义 .pdf
- 完整版新技术、新产品、新工艺、新材料应用.docx VIP
- Mastercam Mp Post Processor Reference Guide (一种数控编程议员后处理器参考指南).pdf
- 全国评比达标表彰保留项目目录的通告(2015-8-20).docx
- 外省建筑业企业进鄂施工年度 - 湖北省建筑工程管理 .doc
- 易错点05 光合与呼吸综合专题的“五点”易错防范(解析版).docx
文档评论(0)