;;;;//lassTest3_1{publicstaticvoidmain(String[]args){intlist[]=newint[(int)(()*5)+5];//定义一个随机出现的数组for(inti=0;i<;i++){list[i]=(int)(()*100)+1;//赋值}(list);//("您待查找的数列为:");for(inti=0;i<;i++){(list[i]+"");//输出已经排好的数组}();BufferedReaderbuf=newBufferedReader(newInputStreamReader());//("请输入您要查找的数字:");try{intx=(());//intresult=binarySearch(list,x);intresult=diGuiBinarySearch(list,x,0,-1);intresult1=result+1;if(result==-1)("您要查找的数字不存在!");("您查找的数字在数组的下标为:"+result);("您查找的数字在数组的第:"+result1+"个");}catch(Exceptione){("您输入的数字有误,请重新输入!");}}publicstaticintbinarySearch(intlist[],intx)//非递归实现!大一学年中已经学过具体算法,二分查找{intleft=0;intright=-1;intmind;while(left<=right){mind=(left+right)/2;if(x==list[mind])returnmind;elseif(x>list[mind])left=left+1;elseright=right-1;}return-1;}publicstaticintdiGuiBinarySearch(intlist[],intx,intl,intr)//递归实现!1,r分别为数组中的首尾元素{if(l>r)return-1;//返回错误intm=(l+r)/2;//取中和x比较if(x==list[m])returnm;elseif(x>list[m])//以下为递归中元素的查找操作returndiGuiBinarySearch(list,x,l+1,r);elsereturndiGuiBinarySearch(list,x,l,r-1);}}
五种基本算法设计递归实现 来自淘豆网m.daumloan.com转载请标明出处.