ACM二分法學習小結

2021-09-19 15:39:46 字數 532 閱讀 9477

1、二分查詢

二分查詢又稱折半查詢,它是一種效率較高的查詢方法。

二分查詢要求:線性表是有序表,即表中結點按關鍵字有序,並且要用向量作為表的儲存結構。不妨設有序表是遞增有序的。

2、二分查詢的基本思想

二分查詢的基本思想是

(1)首先確定該區間的中點位置:

(2)然後將待查的k值與r[mid].key比較:若相等,則查詢成功並返回此位置,否則須確定新的查詢區間,繼續二分查詢,具體方法如下:

①若r[mid].key>k,則由表的有序性可知r[mid,n].keys均大於k,因此若表中存在關鍵字等於k的結點,則該結點必定是在位置mid左邊的子表r[1,mid-1]中,故新的查詢區間是左子表r[1,mid-1]。

②類似地,若r[mid].key因此,從初始的查詢區間r[1,n]開始,每經過一次與當前查詢區間的中點位置上的結點關鍵字的比較,就可確定查詢是否成功,不成功則當前的查詢區間就縮小一半。這一過程重複直至找到關鍵字為k的結點,或者直至當前的查詢區間為空時為止。

對於二分法只是大體懂了一部分還需要繼續深入學習。

二分法學習筆記

當資料量很大適宜採用該方法。採用二分法查詢時,資料需是排好序的。基本思想 假設資料是按公升序排序的,對於給定值x,從序列的中間位置開始比較,如果當前位置值等於x,則查詢成功 若x小於當前位置值,則在數列的前半段中查詢 若x大於當前位置值則在數列的後半段中繼續查詢,直到找到為止。演算法 假如有一組數為...

二分法學習筆記

當資料量很大適宜採用該方法。採用二分法查詢時,資料需是排好序的。基本思想 假設資料是按公升序排序的,對於給定值x,從序列的中間位置開始比較,如果當前位置值等於x,則查詢成功 若x小於當前位置值,則在數列的前半段中查詢 若x大於當前位置值則在數列的後半段中繼續查詢,直到找到為止。演算法 假如有一組數為...

演算法學習 二分法

二分查詢也稱折半查詢 binary search 它是一種效率較高的查詢方法,前提是資料結構必須先排好序,可以在資料規模的對數時間複雜度內完成查詢。但是,二分查詢要求線性表具有有隨機訪問的特點 例如陣列 也要求線性表能夠根據中間元素的特點推測它兩側元素的性質,以達到縮減問題規模的效果。舉個簡單的例子...