java演算法之折半查詢

2021-08-10 22:37:06 字數 830 閱讀 5741

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...