java递归之--二分查找
来源:互联网 发布:淘宝联盟怎么使用教程 编辑:程序博客网 时间:2024/06/05 04:48
程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。
一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。
一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
package test;
/**
* 二分查找法
* 弊端:
* 1、必须采取顺序存储结构
* 2、必须按关键字大小有序排列(个人理解:只对数字好用--用处相对较小)
* 弊端:
* 1、必须采取顺序存储结构
* 2、必须按关键字大小有序排列(个人理解:只对数字好用--用处相对较小)
* @author Super
*/
public class Test2 {
public static void main(String[] args){
//String 类型数组排序去重
/*String [] array=new String[]{"a","2","1","f","4","8","6","5","7","3","7","5"};
Set <String> set = new HashSet<String>();
set.addAll(Arrays.asList(array));
Arrays.sort(set.toArray());
for(Object a:str){
System.out.println(a);
}*/
//int类型数组排序去重
/*Integer [] a= new Integer []{3,2,1,4,5,4,8,5,78,0,9,10};
Set<Integer> set = new HashSet<Integer>();
set.addAll(Arrays.asList(a));
Arrays.sort(set.toArray());*/
int[] a=new int[]{0,1,2,3,4,5,6,7,8,9};
int min=0;
int max=a.length-1;
System.out.println(getArray(a, 7, min, max));
}
//非递归算法
/*public static int getArray(int [] array,int index,int min,int max){
int tmp = (min+max)/2;
while(min<=max){
if(index==array[tmp]){
return tmp;
}else if(index<array[tmp]){
return max=tmp-1;
}else{
return min=tmp+1;
}
}
return -1;
} */
//递归算法
public static int getArray(int[] array,intindex,int min,intmax){
inttmp = (min+max)>>1;
if(min<=max){
if(index==array[tmp]){
return tmp;
}else if (index<array[tmp]){
return getArray(array, index, min, tmp-1);
}else{
return getArray(array, index, tmp+1, max);
}
}
return-1;
}
}
阅读全文
1 0
- java递归之--二分查找
- 递归之二分查找
- 递归之二分查找
- java非递归二分查找
- java递归实现二分查找
- JAVA二分递归查找算法
- 二分查找和递归@java
- 二分查找(递归&非递归)java
- 二分查找之java
- java之二分查找
- Java实现数组二分查找及递归二分查找
- 算法(第四版)学习笔记之二分查找的递归与非递归java实现
- 递归递推之二分查找
- 二分查找(非递归JAVA)
- 二分查找(非递归JAVA)
- 用递归实现二分查找 JAVA
- java递归实现二分查找算法
- java递归实现二分查找算法
- 【算法】回文数的判断--栈的使用
- 计算html文本高度
- 百度鹰眼addPoint()的使用
- 【php知识整理】(1)基本语法 & 类型 & 变量 & 常量
- Android应用运行响应慢原因
- java递归之--二分查找
- 求解立方根
- Unity游戏商店购物到背包代码笔记
- The Tetris game wxPython
- 为什么说没有大数据的人工智能什么都不是?
- JSONString转List<map>;Duplicate key
- 今日小程序推荐:梵高的作品、吴昕的演技
- 运算符、流程控制
- thymeleaf 个人常用标签