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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fmi110 高级黑马   /  2015-8-16 21:59  /  186 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

a
  1. 练习:二叉树查找数组中元素:
  2.                                         import java.util.Arrays;
  3.                                         class Test
  4.                                         {
  5.                                                 public static void main(String[] args)
  6.                                                 {
  7.                                                         System.out.println(binarySearch(16));
  8.                                                 }
  9.                                                 public static int binarySearch(int num)
  10.                                                 {
  11.                                                         int[] arr = new int[]{1,5,8,11,12,14,15};
  12.                                         //                return Arrays.binarySearch(arr,num);
  13.                                                         int min,max,mid;
  14.                                                         min = 0;
  15.                                                         max = arr.length-1;
  16.                                                         mid = (min +max)/2;
  17.                                                         while(min <= max){
  18.                                                                 if(arr[mid]==num)
  19.                                                                         return mid;
  20.                                                                 else
  21.                                                                 {
  22.                                                                         if(num<arr[mid]){
  23.                                                                                 max = mid-1;
  24.                                                                         }
  25.                                                                         else{
  26.                                                                                 min = mid+1;
  27.                                                                         }
  28.                                                                         mid = (max+min)/2;
  29.                                                                         System.out.println("chang ...max = "+max+" min = "+min+" mid = "+mid);
  30.                                                                 }
  31.                                                         }
  32.                                                         return -(min+1);
  33.                                                 }
  34.                                         }
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马