線性結構--二分查詢
阿新 • • 發佈:2018-12-21
二分查詢又稱折半查詢,它是一種效率較高的查詢方法。
二分查詢要求:線性表是有序表,即表中結點按關鍵字有序,並且要用向量作為表的儲存結構。不妨設有序表是遞增有序的。
二分查詢java程式碼
1 package com.feimao.com.feimao.a2.test; 2 3 import java.util.Arrays; 4 5 public class BinarySerach { 6 public static void main(String[] args){ 7 int[] arr = newint[]{1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9}; 8 System.out.println(Arrays.toString(arr)); 9 //目標元素 10 int target = 2; 11 int begin = 0; 12 int end = arr.length-1; 13 int mid = (begin + end)/2; 14 //記錄目標位置 15 int index = -1; 16 while(true){ 17 //判斷中間這個元素是不是要查詢的元素 18 if(arr[mid] == target){ 19 index = mid; 20 break; 21 }else{ 22 //判斷中間這個元素是不是比目標元素大 23 if(arr[mid] > target){ 24 //把結束位置調整到中間位置的前一個位置 25 end = mid - 1;26 }else{ 27 //把開始位置調整到中間位置的後一個位置 28 begin = mid + 1; 29 } 30 //取出新的中間位置 31 mid = (begin + end)/2; 32 } 33 } 34 System.out.println("index " + index); 35 } 36 }