順序查詢法和二分查詢法

2021-09-23 18:15:08 字數 880 閱讀 8575

方法1

def shunxu(f_list,temp):

for index,i in enumerate(f_list):

if i==temp:

return index

return none

方法2

def shunxu(f_flist,temp):

for i in range(len(f_flist)):

if f_flist[i]==temp:

return i

return none

1、定義 二分查詢又稱折半查詢,它是一種效率較高的查詢方法。 二分查詢要求:線性表是有序表,即表中結點按關鍵字有序,並且要用向量作為表的儲存結構。不妨設有序表是遞增有序的。

2、基本思想 二分查詢的基本思想是: 設r[low…high]是當前的查詢區間

(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=min:

flag=(max+min)//2

if f_list[flag]==temp:

return flag

elif f_list[flag]>temp:

max=flag-1

elif f_list[flag]min=flag+1

return none

順序查詢和二分法查詢

順序查詢 對錶中的元素排序無要求,但如果表中各個元素的查詢概率並不相等,則應先對元素的查詢概率進行排序,使表中元素的查詢概率由小到大重新排列,以便提高查詢概率。二分法查詢 折半查詢的效率比順序查詢高,但折半查詢只適用於有序表,且限於順序儲存結構 對鏈式儲存無效 typedef int elemtyp...

線性查詢法 二分查詢法

陣列的查詢 在陣列中尋找特定元素的過程。1 線性查詢法 演算法思路 線性查詢法是將要查詢的關鍵字key與陣列中的元素逐個進行比較,直到列表中找到與關鍵字匹配的元素,或者查完列表也沒有找到。如果匹配成功,返回與關鍵字匹配的元素在陣列中的下標,如果沒有找到則返回 1。適用於小陣列或沒有排序的陣列中查詢,...

二分查詢法(折半查詢法)

二分查詢法 說明 如果搜尋的數列已經有排序,應該盡量利用它們已排序的特性,以減少搜尋比對的次數 這是搜尋的基本原則,二分搜尋法是這個基本原則的代表。解法 在二分搜尋法中,從數列的中間開始搜尋,如果這個數小於我們所搜尋的數,由於數列已排序,則該數左邊的數一定都小於要搜尋 的物件,所以無需浪費時間在左邊...