黑马程序员技术交流社区

标题: 基础视频day04练习2 [打印本页]

作者: 不怕黑人    时间: 2015-7-17 19:27
标题: 基础视频day04练习2
  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. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2