- 4
- 0
- 约3.08千字
- 约 6页
- 2023-08-24 发布于辽宁
- 举报
算法设计与分析实验报告
专业
班级
姓名
学号
实验名称
实验一:递归与分治算法设计
实验目的
掌握递归与分治策略的基本思想。
通过设计求解给定问题的递归算法和分治算法学会使用递归和分治法解决问题的一般技巧。
实验内容
二分搜索问题:
设a[0:n-1]是己排好序的数组。试改写二分搜索算法,使得当搜索元素x不在数组a中时,返回小于x的最大元素的位置i和大于x的最小元素的位置j;当搜索元素x在数组a中时,返回x在数组中的位置,此时i和j相同。
假币识别问题:
一个袋子里有n个硬币,其中一枚是假币,假币和真币外观一模一样,仅凭肉眼无法区分,但是已知假币比真币轻一些。试设计识别假币的分治算法。_
算法描述
二分搜索问题的解题思路或算法思想:
将n个元素分成个数大致相同的两半,
取a[n/2]与x进行比较。
如果x=a[n/2],则找到x算法终止,
如果xx[n/2],则在数组的右边部分继续搜索,
如果xx[n/2],则在数组的左边部分继续搜索。
假币识别问题的解题思路或算法思想:
将这n个硬币分成两等份,然后放到天平的两端,则假币在较轻的那一端;
然后将较轻的那端的硬币再分成2等份,然后再放到天平的两端进行比较,假币还是在较轻的那一段;
直到最后只剩下两个硬币了,分别放到天平的两端,轻的哪个就是假币。
当然,最后也可能剩下3个硬币,我们可以将这3个硬币中任意拿出来个,然后将剩下的两个放到天平的两端,如果天平是平的,则说明拿出来的那个硬币就是假币;
如果天平不是平的,则轻的那端是假币。
程序及运行结果
1.二分搜索问题的程序:
packagecom.tl;
importjava.util.Scanner;
publicclassDigui(
publicstaticintbinarySearch(inta[],intx,intleft,intright)(intmid=0;
while(leftright)(
mid=(left+right)/2;
if(a[mid]==x)
returnmid;
if(a[mid]x)(
right=mid-1;
}else(
left=mid+1;
}
}
returnleft;
}
}
publicstaticvoidmain(String[]args)(
int[]a=newint[]{2,3,4,5,6,8,9};//0123456
Scannerscn=newScanner(System.沮);
intx=scn.nextInt();
intm=newDigui().binarySearch(a,x,0,a.length-1);if(a[m]==x){
System.。以.println(”与x相等的薮据元素的下标是+m);
}else{
System.。以.println(不、存在+x);
if(a[m]x){
System.。以.println(比x大的取小数组儿素的下标是”+m);
if((m-1)0){
System.。以.println(不存在比x小的数组元素);
}
}else{
System.。以.println(比x小的最大数组兀素的下标是”+m);
if(m=a.length-1){
System.。以.println(不存在比x大的数组元素”);
}else{
System.。以.println(”上匕x大的取小数组儿素的下标是+(m+1));
}
}
}
}
实例:
1)
0相存在。
比甚大的最小数组元麦的下标是。
不存在比*卜的数组元素2)10忆存在比不小的最大数组元素的下标是6不存在比*大的数组元素3)不存在7比*小的最大数组元素的下标是4比x大的最小致组元素的下标是54)与对目等的数据元素的下标是22.假币识别问题的程序:
packagecom.t3;〃假币问题importjava.util.Scanner;publicclassMain(
staticfinalintMAXNUM=20;privatestaticintFalseCoin(int[]coin,intlow,inthigh)(intsum1=0,sum2=0,sum3=0;intre=0;if(low+1==high)(if(coin[low]coin[high])(re=low+1;returnre;}else(re=high+1;returnre;if((high-low+1)%2==0){//如果n是偶数
〃前半段for(inti=low;i=low+(high-low)/2;i++){sum1=sum1+coin[i];//后半段for(inti=low+(high-low)/2+1;i=high;i++){
sum2=sum2+coin[i];if(sumlsum2)(re=Fal
您可能关注的文档
最近下载
- 《保教政策法规与职业道德》中职幼儿保育专业全套教学课件.pptx
- 高职类科研课题申报书: 高职生思想政治教育分析研究.doc VIP
- 《汽车车身结构与设计(第3版)》 课件全套 第1--6章 车身概论 ----车身部件结构与设计.pptx
- 广西近五年中考物理真题及答案2025.docx VIP
- 职工宿舍管理员年终总结.pptx VIP
- (2025春)人教版八年级地理下册全册教案.pdf
- 2025年内初班(新)(答案完整齐全)内初班民族团结考试(带答案) .pdf VIP
- 高中类科研课题申报书: 新时期高中生物教学之有效方案研究.pdf VIP
- 新人教版数学八年级下册导学案全册.doc VIP
- 20185月最新修订十八项医疗质量安全核心制度全.doc VIP
原创力文档

文档评论(0)