我们知道,所谓“递归”,就是函数自己调用自己。举一个例子,如果洪哥想遍历一个文件夹下面的所有子文件夹和文件,以及子文件夹中的子文件夹及文件。呃,好像有点饶舌了,就是说遍历出一个文件夹下所有的子项。这就是使用递归的一个典型场景。
下面是一个二分查询的递归示例程序,网上抄来的,大家一起学习下。
public class Fact {
public static int binarySearch(int[] dataset ,int data)
{
int beginIndex = 0; //定义起始位置
int endIndex = dataset.length - 1; //定义结束位置
int midIndex = -1; //定义中点
if(data <dataset[beginIndex]||data>dataset[endIndex]||beginIndex>endIndex){
return -1;
//用二分法查找的数据必须是排好序的,因此只要比较第一个元素和最后一个元素就可以确定所查找的数据是否在数组中
}
while(beginIndex <= endIndex) {
midIndex = (beginIndex+endIndex)/2;//初始化中点
if(data <dataset[midIndex]) {
endIndex = midIndex-1; //如果查找的数据小于中点位置的数据,则把查找的结束位置定义在中点
} else if(data>dataset[midIndex]) { //如果查找的数据小于中点位置的数据,则把查找的起始位置定义在中点
beginIndex = midIndex+1;
}else {
return midIndex; //返回查找到的数据的位置
}
}
return -1;
}
public static void main(String[] args) {
int[] test1 = { 38,48,59,61,72,99,101 }; // 测试数组
System.out.print("你查找的数据位置在:"+Example1_6.binarySearch(test1,59));
}
}
}
3.1.1.2 程序运行结果:
n=2 x=1
n=1 x=0
n=0
fact(x)->x=0
fact(x)->x=1
fn=2
关于Java递归算法示例,本文就介绍这么多,希望对大家有所帮助,谢谢!
要饭二维码
洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

文章的版权
本文属于“洪哥笔记”原创文章,转载请注明来源地址:Java递归算法示例:http://www.splaybow.com/post/java-digui-shili.html
如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:8771947!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D!
发布时间:2013/12/29 19:19:50 | 编辑:洪哥 | 分类:Java | 浏览: