查詢演算法 折半查詢演算法

2021-07-25 09:36:06 字數 943 閱讀 8577

/**

* 折半查詢演算法 binary search

*@param

a

乙個有序的集合(本次為由小到大)

*@param

x

需要查詢的值

* ps: 首先使用折半演算法的時候 集合必須是有序的

* eg: a[1,3,5,7,9] x 3

* a mid low height

* [1,3,5,7,9] 2 0 1

* [1,3] 0 1 1

* [3] 1 - -

* 最終返回1 也就是3在集合的索引是1

* 備註:由以上分析不難得出 若集合中存在該值 則返回的是程式第一次查到該值所在的索引

* 若 該集合出現重複的資料 可能返回的不是其在集合的最小索引

* 建議:使用折半查詢演算法 使用的集合是有序且值不重複 結果則是最精準的 若有序但存在重複值 會存在誤差

* */

public static intbinarysearch(inta,intx)else if(a[mid] < x)else

}return-1;

}

查詢演算法 折半查詢

本小節知識點 1.掌握 基本思路 2.掌握 實現步驟 3.了解 練習 1.基本思路 在有序表中,取中間元素作為比較物件,若給定值與中間元素的要查詢的數相等,則查詢成功 若給定值小於中間元素的要查詢的數,則在中間元素的左半區繼續查詢 若給定值大於中間元素的要查詢的數,則在中間元素的右半區繼續查詢。不斷...

折半查詢演算法

折半查詢法 從表列中查乙個數最簡單的方法是從第1個數開始順序查詢,將要找的數與表列中的 數一一比較,直到找到為止 如果表列中無此數,則應找到最後乙個數,然後判定 找不到 但這種 順序查詢法 效率較低。如果表列中有1000個數,且要找的數恰恰是第1000個數,則要進行1000次比較才得到結果。平均比較...

折半查詢演算法

在 電腦科學 中,折半搜尋 也稱二分查詢演算法 二分搜尋 是一種在有序陣列中查詢某一特定元素的 搜尋演算法 搜素過程從陣列的中間元素開始,如果中間元素正好是要查詢的元素,則搜素過程結束 如果某一特定元素大於或者小於中間元素,則在陣列大於或小於中間元素的那一半中查詢,而且跟開始一樣從中間元素開始比較。...