首页 > 代码库 > Java递归实现二分法,希望各位指点一下
Java递归实现二分法,希望各位指点一下
/* 3.使用二分法查找有序数组中元素。找到返回索引,不存在输出-1。使用递归实现 */ import java.util.Scanner; public class Recursion{ public static void main(String[]args) { System.out.println("请输入要找的整数"); Scanner sc=new Scanner(System.in); int num = sc.nextInt(); int []a={1,2,3,4,5,6,7,8,9}; int front = 0; int end = a.length-1; int mid = (front+end)/2; //递归实现二分法 int index=findArray(a,front,mid,end,num); if(index!=-1) { System.out.println("找到该数"+index); } else { System.out.println(index); } } public static int findArray(int[]b,int front,int mid,int end,int num) { int index = -1; if(front==end) { if(b[mid]==num) { return mid; } else { return index; } } else if(front<end) { if(b[mid]==num) { index = mid; return index; } else if(b[mid]>num) { end = mid-1; mid = (front+end)/2; return findArray(b,front,mid,end,num); } else if(b[mid]<num) { front=mid+1; mid=(front+end)/2; return findArray(b,front,mid,end,num); } } //为什么下面的else需要注释掉,不注释掉编译会报错说缺少返回值 else { return index; } // return index; } }
为什么程序的报错,说else语句之后缺少返回值
本文出自 “11890208” 博客,请务必保留此出处http://11900208.blog.51cto.com/11890208/1865846
Java递归实现二分法,希望各位指点一下
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。