赞
踩
实验一递归与分治算法编程-实验报告纸
南京信息工程大学 实验(实习)报告实验(实习)名称 递归与分治算法编程 实验(实习)日期 得分 指导教师 院 专业 年级 班次 姓名 学号
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(x>a[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(sm)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;i<8;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){
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。