- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一递归与分治算法编程-实验报告纸
南京信息工程大学 实验(实习)报告
实验(实习)名称 递归与分治算法编程 实验(实习)日期 得分 指导教师
院 专业 年级 班次 姓名 学号
1.实验目的:
掌握递归与分治策略的基本思想
掌握递归算法在阶乘函数、Ackerman函数、整数划分等问题上的应用
掌握二分查找、合并排序、快速排序等问题的分治算法实现
熟悉MyEclipse或Eclipse等Java开发工具的使用。
2.实验内容:
采用MyEclipse或Eclipse编程实现基于分治策略的二分查找算法。
采用MyEclipse或Eclipse编程实现基于分治策略的合并排序算法。
采用MyEclipse或Eclipse编程实现基于分治策略的合并排序算法。
实验步骤
二分查找
public class Sorting {
public static int BinarySearch(int [] a,int x, int n){
int left=0;int right = n-1;
while(left=right){
int middle = (left+right)/2;
if(x==a[middle]) return middle;
if(xa[middle]) left=middle+1;
else right = middle-1;
}
return -1;
}
public static void main(String args[]){
int x,n;
int a[]={1,3,4,5,6,13,25};
x=6;
n=7;
int s;
s=BinarySearch(a,x,n);
System.out.println(s);
合并排序
public class Mergesort {
public static void mergeSort(int []a ){
int [] b = new int[a.length];
int s=1;
while(sa.length){
mergePass(a,b,s);
s+=s;
mergePass(b,a,s);
s+=s;
}
}
public static void mergePass(int []x,int []y,int s){
int i=0;
while(i=x.length-2*s){
merge(x,y,i,i+s-1,i+2*s-1);
i=i+2*s;
}
if(i+sx.length)
merge(x,y,i,i+s-1,x.length-1);
else
for(int j=i;jx.length;j++)
y[j]=x[j];
}
public static void merge(int []c,int []d,int l,int m,int r){
int i=1,j=m+1,k=1;
while((i=m)(j=r))
if(c[i]-(c[j])=0)
d[k++]=c[i++];
else d[k++]=c[j++];
if(im)
for(int q=j;q=r;q++)
d[k++]=c[q];
else
for(int q=i;q=m;q++)
d[k++]=c[q];
}
public static void main(String args[]){
int a[]={1,7,2,6,4,5,8,3};
mergeSort(a);
for(int i=0;i8;i++)
System.out.print(a[i]);
}
}
快速排序
public class QSort {
private static void qSort(int a[],int p,int r)
{
if(p r){
int q = partition(a,p,r);
qSort(a,p,q-1);
qSort(a,q+1,r);
}
}
private static int partition(int a[],int p,int r)
{
int i=p;
int j= r + 1;
int x=a[p];
int temp;
while(true){
while((a[++i]-
您可能关注的文档
最近下载
- 教育、科技、人才一体化与新质生产力发展.pptx VIP
- 2024年湖南水利水电职业技术学院单招职业技能测试题库含答案(研优卷).docx VIP
- 教育、科技、人才一体化视域下发展新质生产力的四重逻辑和实践路径.docx VIP
- 教育、科技、人才一体化视域下发展新质生产力的四重逻辑和实践路径.docx VIP
- 《大棚番茄基质槽式栽培技术规程》.docx
- 立体车库 毕业论文外文翻译.docx VIP
- 教育、科技、人才一体推进新质生产力发展.docx VIP
- 2024年湖南水利水电职业技术学院单招职业技能测试题库含答案(考试直接用).docx VIP
- 社交礼仪教程(第7版 微课版)课件 第五章 餐饮礼仪.pptx
- 2025清华:DeepSeek从入门到精通.pdf
文档评论(0)