int mid = (low+high)/2 = (0+6)/2 = 3
a[mid] = a[3] = 20
因為 num>a[mid]
所以 low=mid+1=4 high=6
step2: mid=(4+6)/2=5
a[mid] = a[5] = 35;
因為: num>a[mid]
所以:low = mid+1 high=6
step3: mid = (low+high)/2=6
a[mid] = a[6] = 38
因為: num< a[mid]
所以:low=6 high = mid-1 = 5
因為: low>high
所以沒找到。
注:low必須小於等於high
折半查詢演算法如下:
public
static
void
main(string args);
scanner scanner= new scanner(system.in);
system.out.println("請輸入要查詢的數:");
int num = scanner.nextint();
//定義陣列第乙個元素下腳標
int low =0;
//最後乙個元素的下角標
int high = a.length-1;
while (low<=high)else
if(num>a[mid])else
if(num1;}}
if(low>high)
}
查詢演算法之折半查詢
binary search 折半查詢又稱二分查詢,要求資料序列呈線性結構,即先排序,在查詢。可以明顯的提高查詢速度,其流程如下 預設陣列為a 需查詢的值為x 首先設定3個變數low mid high,分別儲存陣列元素開始 中間和末尾元素的序號。接著進行以下判斷。1 如果陣列中序號為mid的值與需查詢...
Java之折半查詢資料
折半查詢的效率比一般的效率高 class arrayselectdemo int arr int index1 binarysearch arr,90 int index2 binarysearch2 arr,90 system.out.println index1 system.out.print...
python之折半查詢演算法
折半查詢演算法也叫二分查詢演算法。演算法的細節我就不講了。但是必須說一下二分查詢是基於我們之前的資料是有序的,如果沒有序該演算法是沒有意義的。個人覺得 比較直觀,所以我這裡就直接上 了。折半查詢非遞迴演算法 折半查詢函式 引數 陣列 起始位置 結束位置 資料 def search arr,start...