毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

java判断两数组是否有序

更新时间:2011-5-21:  来源:毕业论文

java判断两数组是否有序
编写具有如下函数原型的递归与非递归两种函数equ,负责判断数组a与b的前n个元素值是否按下标对应完全相同,是则返回true,否则返回false。并编制主函数对它们进行调用,以验证其正确性。
bool equ(int a[], int b[], int n);
提示:递归函数中可按如下方式来分解并处理问题,先判断最后一个元素是否相同,不同则返false;相同则看n是否等于1,是则返回true,否则进行递归调用(传去实参a、b与 n-1,去判断前n-1个元素的相等性),并返回递归调用的结果(与前n-1个元素的是否相等性相同)。
7.2概要设计:
本程设计思路: 总的来说并不难。由于跟上一个题目基本是没有什么太大的变化。关键就还是在于递归以及非递归算法是怎么写的。非递归就是将两个数组里的数一个一个一次比较就行了。递归则是用到循环调用。出错的处理则是交给java中的try,catch语句。

程序流程图(如左图):
7.3   详细设计与编码:
见上传程序。
7.4  调试分析:
      因为跟之前的实验基本是一样的,所以调试的时候到是没有出项什么问题,就是忘了写try,catch语句来检测错误了。
 程序执行的结果:
错误检测
7.5   用户使用说明:
      用户根据程序的提示输入数组,以及想要使用的判断方法,程序就会自己计算出所需的得数。如果有错误的话,程序会提出警示。
7.6  设计心得:
     对于这次的实验基本就是上一个实验的翻版,所以在做起来是相当的快,没费多少时间就完成了。不过倒是经常会忘了错误的检测,实在是没有这个习惯。不过我觉得有错误的检测还是不错的,至少对于将来工作的话是会有不小的帮助的吧。
/*
 编写具有如下函数原型的递归与非递归两种函数equ,
 负责判断数组a与b的前n个元素值是否按下标对应完全相同,是则返回true,否则返回false。
 并编制主函数对它们进行调用,以验证其正确性。
bool equ(int a[], int b[], int n);
提示:递归函数中可按如下方式来分解并处理问题,先判断最后一个元素是否相同,不同则返false;
相同则看n是否等于1,是则返回true,否则进行递归调用(传去实参a、b与 n-1,去判断前n-1个元素的相等性),
并返回递归调用的结果(与前n-1个元素的是否相等性相同)。
 
 */
import java.io.*;
public class shiwu {
 static String printArray(int[]a){//输出数组
  String result=" ";
  for(int i=0;i<a.length;i++) result+=a[i]+" ";
  return result;
 }
 static boolean equ1(int a[],int b[],int n){//非递归判断是否相等
  int i,j=0;
  for(i=0;i<n;i++)
    for(;j<n;j++){
     if(i==j&&a[i]==a[j]){
      j++;
      break;
     }
     else return false;
    }
    return true;
 }

 static boolean equ2(int a[],int b[],int n){//递归判断是否相等
  boolean f;
  if(a[n-1]!=b[n-1])
   f=false;
  else if(n==1)
   f=true;
  else f=equ2(a,b,n-1);
  return f;
 }
 
 public static void main(String args[])throws IOException{
  try{
   int i;
   boolean x;
   BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
   System.out.print("输入数组的大小:");
   System.out.flush();
   int m=Integer.parseInt(br.readLine());
   int a[]=new int[m];
   int b[]=new int[m];
   System.out.println("请输入a数组各个数的值:");
   System.out.flush();
   for(i=0;i<m;i++){
    a[i]=Integer.parseInt(br.readLine());
   }
  
原文请找腾讯752018766优,文-论'文.网http://www.youerw.com 

   System.out.flush();
   int n1=Integer.parseInt(br.readLine());
   if(n1==1){
    x=equ1(a,b,n);
    if(x) System.out.println("非递归判断:a和b数组前"+n+"位相等");
    else System.out.println("非递归判断:a和b数组前"+n+"位不相等");
   }
   if(n1==2){
    x=equ2(a,b,n);
    if(x) System.out.println("递归判断:a和b数组前"+n+"位相等");
    else System.out.println("递归判断:a和b数组前"+n+"位不相等");
   }
   }catch(Exception e){
    System.out.println("输入有错!");1837

java判断两数组是否有序下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。