- 4
- 0
- 约9.08千字
- 约 11页
- 2019-01-01 发布于福建
- 举报
算法与分析平时作米业---答案
平时作业
1、给定下述二分搜索算法,请判断算法的正确性,指出错误算法的产生原因。
a) int BinarySearch(Type a[], const Type x, int l, int r){
while (r = l){
int m = (l+r)/2;
if (x == a[m]) return m;
if (x a[m]) r = m-1;
else l = m+1;
}
return -1;
}
答:正确
b) int BinarySearch(Type a[], const Type x, int l, int r){
while (r = l){
int m = (l+r)/2;
if (x == a[m]) return m;
if (x a[m]) r = m+1;
else l = m-1;
}
return -1;
}
答:错误
if (x a[m]) r = m+1; 当查找的元素在中间元素的左边时,右指针应该为m-1位置,修改成if (x a[m]) r = m+1; else l = m+l
c) int BinarySearch(Type a[], const Type x, int l, int r){
while (r l){
int m = (l+r)/2;
if (x == a[m]) return m;
if (x a[m]) r = m-1;
else l = m+1;
}
return -1;
}
答:错误。
while (r l) 要考虑到 数组只有一个元素的情况 所以应该是 r=l ;
2、O(1)空间子数组环卫算法:设a[0:n-1]是一个n维数组,k(1≤ k ≤n-1)是一个非负整数。试设计一个算法将子数组a[0 : k-1]与a[k+1 : n-1]换位。要求算法在最坏情况下耗时O(n),且只用O(1)的辅助空间。
答:最简单的方法就是循环(n-k-1)次,将a数组的末尾数字插入到a[0]之前。
具体做法:
(1) 首先开辟一个额外空间temp用于存放每一次a数组的末尾数据。
(2) temp - a[n-1]
(3) 将a[0: n-2] 每个数据都依次向后移动一位赋值给a[1: n-1]。
(4) a[0] - temp
(5) 循环执行(2) -(4) 步 (n-k+1)次。
代价分析: 时间代价—— O((n-1)*(n-k+1)) 即O(n^2)数量级;空间代价: O(1)
3、定义: 给定一个自然数n,由n开始依次产生半数集set(n)中的元素如下:
1);
2)在n的左边加上一个自然数,但该自然数不能超过最近添加的数的一半;
3)按此规则进行处理,直至不能再添加新的自然数为止。
例如 。其中共有6个元素。
半数集问题:对于给定的n,求半数集set(n) 中元素的个数。
答:半数集set(n)中元素个数的求解是个递归的过程。设set(n)中的元素个数为f(n),则显然有递归表达式:f(n)=1+∑f(i),i=1,2……n/2。即半数集set(n)元素个数f(n)=1+f(1)+f(2)+...+f(floor(n/2)). 用递推法求解。C语言代码如下:
#includestdio.h
#includestdlib.h
int main(){
int n;
int i,j,s;
int buf[106];
char *in=input.txt,*out=output.txt;
FILE *ip,*op;
if((ip=fopen(in,r))==NULL)return 1;
if((op=fopen(out,w))==NULL)return 2;
fscanf(ip,%d,n);
fclose(ip);
buf[1]=1;
buf[2]=2;
buf[3]=2;
for(i=4;i*2=n;i++){
s=1;
for(j=1;j=i/2;j++){
s+=buf[j];
}
buf[i]=s;
}
s=1;
for(j=1;j=n/2;j++){
s+=b
您可能关注的文档
- 四川攀枝花市驾驶考长试标准.doc
- 四川师范大学狮子及山校区学生公寓二期控电系统改造及路灯改.doc
- 四大名著阅读幺(学生版).doc
- 四大名著最动人的品60句话.doc
- 四级常见词组及固定搭配线-完美版.doc
- 四级综合(完形各和改错).doc
- 四年级大自然的启看示作文范文.doc
- 四年级上配册班队会教案.doc
- 四年级上学期语文下看拼音写词练习(苏教版国标本).doc
- 四年级语文上新课堂同步学习与又探究答案.doc
- 2026届河南省郑州市高三上学期一模政治(解析版).docx
- 2026届河南省郑州市高三上学期第一次质量预测历史(原卷版).docx
- 2026届河北省名校联合体高三上学期一模政治(原卷版).docx
- 广东省茂名市信宜市2025-2026学年高二上学期11月期中考试政治(原卷版).docx
- 2026年高一上学期语文期末考试压轴卷含答案.docx
- 河北省部分示范性高中2025-2026学年高一12月考试语文试题含答案.docx
- 考研真题 首都师范大学历史学院776历史学基础综合历年考研真题汇编(含部分答案).pdf
- 考研真题 首都师范大学文学院445汉语国际教育基础[专业硕士]历年考研真题汇编(含部分答案).pdf
- 《护士条例》 辅导讲座.pptx
- 牙科医师质控的年度工作述职.pptx
最近下载
- 医疗机构药学门诊服务规范解读.pptx
- 商业模式画布专题培训课件.ppt VIP
- 安徽省合肥市第一中学2024-2025学年高二上学期期中考试英语试卷(解析版).docx VIP
- Jiangsu Hengrui Pharmaceutical Co., Ltd. 江苏恒瑞医药股份有限公司 西药 对乙酰氨基酚甘露醇注射液 50ml:500mg 说明书.pdf
- (32页PPT)产业经济学教材博弈论与企业策略性行为.ppt VIP
- 配置H3CSecPathf100-c防火墙纪实.pdf VIP
- 2025年中国中医科学院第一批公开招聘笔试备考题库及答案详解一套.docx VIP
- GB50108–2008《地下工程防水技术规范》.PDF
- 浙江省嘉兴市2023-2024学年九年级上学期期末英语试题(含解析).pdf VIP
- 公务员考试词语辨析大全(最新)PDF.pdf VIP
原创力文档

文档评论(0)