java递归实现二分法 -尊龙游戏旗舰厅官网
尊龙游戏旗舰厅官网
收集整理的这篇文章主要介绍了
java递归实现二分法
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
/*
递归实现二分法的进化 */import java.util.scanner;public class recursionnext2{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 index=findarray(a,front,end,num);system.out.println(index);}//递归实现二分法public static int findarray(int []b,int front,int end,int num){int index=-1;int mid = (front end)/2; if(b==null){return index;}if(front<=end){if(b[mid]==num){return mid;}else if(b[mid]num){return findarray(b,front,mid-1,num);}}return -1;}}num){end=mid-1;}}return -1;}}num){end=mid-1;}}
分析此程序:
首先二分法:
/* 二分法 */import java.util.scanner;public class bisection{public static void main(string[]args){int []a={1,2,3,4,5,6,7,8};scanner sc=new scanner(system.in);system.out.println("请输入你要找的数字");int num=sc.nextint();//调用searcharray()寻找numint index=searcharray(a,num);system.out.println(index);}//二分法public static int searcharray(int[]a,int num){int front = 0;int end=a.length-1;int count =0;//判断数组是否为空if(a==null){return -1;}while(front<=end){int mid=(front end)/2;system.out.println("第" ( count) "次");if(a[mid]==num){return mid;}else if(a[mid]递归实际就是实现了循环的作用!
二分法首先你要确定你所穿的数组不是空,并且使数组升序排列
//判断数组是否为空if(a==null){return -1;}第二限制循环的条件
保证front<=end,只有在这个前提下找的的位置才保证是在数组内部寻找
然后再去判断a[mid]是否等于num,若a[mid]
转载于:https://blog.51cto.com/11900208/1866008
总结
以上是尊龙游戏旗舰厅官网为你收集整理的java递归实现二分法的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: linux命令:ps,netstat,t
- 下一篇: