折半查詢法(遞迴二分演算法)(非遞迴二分演算法)

2021-09-30 18:25:41 字數 835 閱讀 4541

#include

#include

#include

#define max 10001

using namespace std;

int a[max]

,key;

intsearch

(int bot,

int top)

//傳過陣列下標來,恰好可以呼叫全域性變數a[max]

//如果傳過來陣列,位置變動不如下標容易

else

if(key)//其實,直接search(mid+1/mid-1)之類的就行

//因為在下次遞迴之中,傳過去的已經當作bot,top

else

}else

}int

main()

#include

#include

#include

#define max 10001

using namespace std;

int a[max]

,key;

intsearch

(int bot,

int top)

//傳過陣列下標來,恰好可以呼叫全域性變數a[max]

//如果傳過來陣列,位置變動不如下標容易

else

if(key)//其實,直接search(mid+1/mid-1)之類的就行

//因為在下次遞迴之中,傳過去的已經當作bot,top

else

}else

}int

main()

二分查詢演算法(遞迴 非遞迴)

二分查詢 binary search 先來個比較官方的解釋 二分搜尋 英語 binary search 也稱折半搜尋 英語 half interval search 對數搜尋 英語 logarithmic search 是一種在有序陣列中查詢某一特定元素的搜尋演算法。搜尋過程從陣列的中間元素開始,如...

二分查詢演算法(遞迴 非遞迴)

二分查詢是針對有序序列來說的,在有序序列中使用二分查詢能大大提高查詢效率。首先確定整個查詢區間的中間位置 mid 用待查關鍵字key值與中間位置的關鍵字值進行比較 若相等,則查詢成功 若大於,則在後 右 半個區域繼續進行折半查詢 若小於,則在前 左 半個區域繼續進行折半查詢 對確定的縮小區域再按折半...

二分查詢(遞迴 非遞迴)

二分查詢是一種查詢效率非常高的查詢演算法。又稱折半查詢。起初在資料結構中學習遞迴時實現二分查詢,實際上不用遞迴也可以實現,畢竟遞迴是需要開闢額外的空間的來輔助查詢。本文就介紹兩種方法 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。使用條件 查詢序...