二分查找的实现
来源:互联网 发布:网络共享盘打不开 编辑:程序博客网 时间:2024/05/17 12:20
import java.util.*;/** * 二分查找 * 如果有重复的数字则返回该数字在数组中出现的第一次位置 * @author Administrator * */public class BinarySearch { public int getPos(int[] A, int n, int val) { // write code here int right=n-1; int left=0; int index=(int)((right+left)/2); while(right>=left){ index=(int)((right+left)/2); if(A[index]==val){ while(index>=0&&A[index]==val){ index--; } return index+1; } else if(A[index]>val){ right=index-1; } else if(A[index]<val){ left=index+1; } } return -1; } public int getPosRecursion(int[] A, int begin,int end, int val){ int right=end; int left=begin; int index=(int)((right+left)/2); if(end<begin){ return -1; } else if(A[index]==val){ while(index>=0&&A[index]==val){ index--; } return index+1; } else if(A[index]>val){ return getPosRecursion(A, begin, index-1,val); } else{ return getPosRecursion(A, index+1, end,val); } } public static void main(String[] args) {int a[]={1,3,3,3,3,6,7,8,9};int b=new BinarySearch().getPos(a, 9, 3);int c=new BinarySearch().getPosRecursion(a,0,8,3);System.out.println(b+" "+c);}}
0 0
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的C++实现
- 二分查找的Java实现
- 二分查找算法的实现
- 二分查找的 C++ 实现
- 实现二分查找的算法
- Python实现的二分查找
- 二分查找的java实现
- js 二分查找的实现
- 二分查找的Java实现
- 树懒_移动开学笔记_day39&day40_安全卫士_分页查询_反射
- 流水笔记--2015-9-21+22
- JAVA环境变量配置
- 深入PHP使用技巧之变量
- 如何用 JS 实现 3D 赛车效果
- 二分查找的实现
- 树懒_移动开学笔记_day41_安全卫士_进程管理
- IOS9 xcode7 You must rebuild it with bitcode enabled
- ZOJ 1002 Fire Net
- 以圆桌骑士为例浅尝HTML5游戏开发
- django 1.8 官方文档翻译:6-6-5 错误报告
- gradle基础
- 学习Java总结之一
- testlink第一次测试导出报告