資料結構筆記 44 二分查詢(非遞迴)

2021-10-21 17:05:26 字數 1009 閱讀 5683

需要注意的是,只有有序的數列才可以使用此演算法。

非遞迴的方式,易於理解,且效率不錯,節省開闢棧空間的開銷了。

例:現有陣列,要求實現二分查詢(非遞迴)

// 二分查詢的非遞迴實現

/** * @param arr 待查詢的陣列,arr是公升序排序

* @param target 需要查詢的數

* @return 返回對應下標,-1表示沒有找到

*/public

static

intbinarysearch

(int

arr,

int target)

else

if(arr[mid]

> target)

else

}return-1;}}

二分查詢(遞迴 非遞迴)

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

二分查詢(非遞迴)

二分查詢只適用於從有序的數列中進行查詢 執行時間為對數時間o log 2 n log 2 log2 n 即最多隻需要log 2 n log 2 log2 n 步。0,99 中100個數進行查詢,需要26 100 27步,最多需要7步 思路 確定出歸條件,找到了或者start end找到中間的數,如果...

二分查詢(非遞迴)

二分查詢也稱折半查詢 binary search 它是一種效率較高的查詢方法。但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列。如果待查序列為空,那麼就返回 1,並退出演算法 這表示查詢不到目標元素。如果待查序列不為空,則將它的中間元素與要查詢的目標元素進行匹配,看它們是否...