A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程序猿小哲 中级黑马   /  2015-9-19 17:36  /  285 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

重要的事情写在前面,数组中的元素必须有序!!!今天复习数组的时候,又详细的复习了一下二分查找法。
  1. import java.util.Arrays;
  2. /**
  3. * 二分查找法
  4. * @author Shawn·Zhang
  5. *
  6. */
  7. public class Demo
  8. {

  9.         public static void main(String[] args)
  10.         {       
  11.                 int[] arr = {8,7,9,4,2,5,1,3,6};
  12.                 Arrays.sort(arr);//排序
  13.                 System.out.println(Arrays.toString(arr));
  14.                 int value = getNum(arr, 3);
  15.                 System.out.println("数值3是数组第"+value+"号元素");
  16.                
  17.         }
  18.         private static int getNum(int[] arr, int value){
  19.                 int low = 0;
  20.                 int high = arr.length-1;
  21.                 while(low<= high){
  22.                         int middle = (low+high)/2;
  23.                         if(value==arr[middle]){
  24.                                 return middle;
  25.                         }else if(value<arr[middle]){
  26.                                 high = middle-1;
  27.                         }else if(value>arr[middle]){
  28.                                 low = middle+1;
  29.                         }
  30.                 }
  31.                 return -1;//若没有所要查找的值,则返回负一
  32.         }
  33.                
  34. }               
复制代码
同样的,Java中也为我们提供了这个API,在以后使用中,我们可以直接简写:
  1. /**
  2. * 二分查找法
  3. * @author Shawn·Zhang
  4. *
  5. */
  6. public class Demo
  7. {

  8.         public static void main(String[] args)
  9.         {       
  10.                 int[] arr = {8,7,9,4,2,5,1,3,6};
  11.                 Arrays.sort(arr);//排序
  12.                 System.out.println(Arrays.toString(arr));
  13.                 //int value = getNum(arr, 3);
  14.                 int value = Arrays.binarySearch(arr, 0);//Java提供的方法
  15.                 System.out.println("数值3是数组第"+value+"号元素");
  16.                
  17.         }
  18.                
  19. }       
复制代码







1 个回复

倒序浏览
挺厉害么   学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马