Java的二进制搜索

1 说明

二进制搜索用于从多个元素中搜索关键元素。二进制搜索比线性搜索快。

如果是二进制搜索,则数组元素必须按升序排列。如果您有未排序的数组,则可以使用Arrays.sort(arr) 方法对数组进行排序。

2 程序实现

让我们看一下Java中二进制搜索的示例。

/**
 * 一点教程网: http://www.yiidian.com
 */
class BinarySearchExample{  
 public static void binarySearch(int arr[], int first, int last, int key){  
   int mid = (first + last)/2;  
   while( first <= last ){  
      if ( arr[mid] < key ){  
        first = mid + 1;     
      }else if ( arr[mid] == key ){  
        System.out.println("Element is found at index: " + mid);  
        break;  
      }else{  
         last = mid - 1;  
      }  
      mid = (first + last)/2;  
   }  
   if ( first > last ){  
      System.out.println("Element is not found!");  
   }  
 }  
 public static void main(String args[]){  
        int arr[] = {10,20,30,40,50};  
        int key = 30;  
        int last=arr.length-1;  
        binarySearch(arr,0,last,key);     
 }  
} 

以上代码输出结果为:

Element is found at index: 2

 

热门文章

优秀文章