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