二分查找的实现
2015-09-20 18:53
507 查看
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); } }
相关文章推荐
- 算法习题66:颠倒栈
- 二分查找算法的实现
- Java 实现二分查找\折半查找
- 二分搜索算法的实现
- 简单迷宫算法实现
- 全排列
- 斐波那契数列与n!
- 全排列
- 二分查找
- 数据结构(第4章: 树和二叉树)
- 结构型模式之组合模式实现
- java 详细实现二分查找算法
- java实现二分查找
- JAVA环境变量配置
- netbeans中按钮实现
- 如何在netbeans中插入图片背景
- 使用SSH中Struts2找不到action,后台还没有报错
- 如何在jmeter中调用自己写的java工具包
- Spring拦截器
- Caused by: java.lang.IncompatibleClassChangeError: Implementing class