二分查詢的遞迴實現

2021-08-22 08:54:53 字數 568 閱讀 9670

二分查詢又叫做折半查詢,具體的查詢流程如下:

查詢的前提是待查詢序列是公升序的。

(1)演算法流程

a.使用目標元素與樣本數列(公升序)中的中間元素比較大小,若相等則表示查詢成功;

b.若目標元素小於中間元素,則應該去中間元素的左邊進行查詢;

c.若目標元素大於中間元素,則應該去中間元素的右邊進行查詢;

d.重複步驟a,直到比較完畢所有該比較元素也沒有相等的元素,則表示查詢失敗;

**如下:

public static int findbinary(int arr, int left, int right, int num)

//3.若目標元素大於中間元素,則在中間元素的右邊查詢,重複以上步驟,使用遞迴實現

if(num > arr[p])

//4.若目標元素小於中間元素,則在中間元素的左邊查詢,重複以上步驟,使用遞迴實現

return findbinary(arr, left, p-1, num);

} return -1;

}

查詢成功返回元素的下標,失敗則返回-1。

二分查詢(遞迴實現)

include include intk int binarysearch int a,int x,int low,int high a表示需要二分的有序陣列 公升序 x表示需要查詢的數字,low,high表示高低位 int mid low high 2 if x a mid 找到x else if...

遞迴實現二分查詢

回文是一種字串,它正著讀和反著讀都是一樣的。比如level,eye都是回文。用迭代的方法可以很快地判斷乙個字串是否為回文。用遞迴的方法如何來實現呢?首先我們要考慮使用遞迴的兩個條件 include iostream include include string define max 100 usin...

二分查詢的遞迴實現

寫程式的思路 1.如果要查詢的值等於中位數 target mid,就查詢成功,返回true 2.如果要查詢的值小於中位數 targetmid,就在中位數的右邊 alist mid 1 進行查詢 如下 def binary search 2 alist,target 二分查詢 遞迴方式 n len a...