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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 不怕黑人 中级黑马   /  2015-7-17 19:27  /  228 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class day4Test2 {

  2.         public static void main(String[] args) {

  3.                 int[] arr = {1,3,4,5,6,9};
  4.                 System.out.println(halfSearch_2(arr,5));
  5.         }
  6.         public static int halfSearch_1(int[] arr,int key){
  7.                 //折半查找方法1
  8.                 int max=arr.length-1,min=0,mid=(max+min)/2;
  9.                 while(arr[mid]!=key){
  10.                        
  11.                         if(arr[mid]>key)
  12.                                 max=mid-1;
  13.                         else if(arr[mid]<key)
  14.                                 min=mid+1;
  15.                         if(min>max)
  16.                                 return -1;
  17.                         mid=(max+min)/2;
  18.                 }
  19.                 return mid;
  20.         }
  21.         public static int halfSearch_2(int[] arr,int key){
  22.                 //折半查找方法2,相较于1要简单,这里注意else if的使用,如果没有else if则第一个条件没满足直接跳到else执行。
  23.                 int max=arr.length-1,min=0,mid;
  24.                 while(min<=max){
  25.                         mid=(max+min)>>1;
  26.                         if(arr[mid]>key)
  27.                                 max=mid-1;
  28.                         else if(arr[mid]<key)
  29.                                 min=mid+1;
  30.                         else
  31.                                 return mid;
  32.                 }
  33.                 return -1;//这里如果返回 min则可以实现知道插入元素位置的功能。
  34.         }
  35. }
复制代码

0 个回复

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