使用Python實現折半查詢無序列表中的某個元素

2021-09-25 23:15:23 字數 697 閱讀 6141

# 子問題演算法(子問題規模為 1)

def is_in_list(init_list, el):

return [false, true][init_list[0] == el]

# 分治法

def solve(init_list, el):

n = len(init_list)

if n == 1: # 若問題規模等於 1,直接解決

return is_in_list(init_list, el)

# 分解(子問題規模為 n/2)

left_list, right_list = init_list[:n // 2], init_list[n // 2:]

# 遞迴(樹),分治,合併(此處為深度優先,注意邏輯短路)

res = solve(left_list, el) or solve(right_list, el)

return res

if __name__ == "__main__":

# 測試資料

test_list = [12, 2, 23, 45, 67, 3, 2, 4, 45, 63, 24, 23]

# 查詢

print(solve(test_list, 45)) # true

print(solve(test_list, 5)) # false

python實現順序查詢和折半查詢

1 順序查詢 特點 不需要內容有序,乙個乙個查詢 缺點 查詢效率低,不適合大資料 假設資料的總個數為n,則計算複雜度為n 2 下面的程式由三個函式組成,第乙個函式是裝飾器,作用是計算函式的 執行時間 第二個函式的作用是資料的輸入,為方便直接給列表裝載i 第三個函式的作用是實現順序查詢 coding ...

Python實現二分查詢 折半查詢

我們在學習程式語言或者演算法設計的時候,總是繞不過查詢演算法和排序演算法。對於順序查詢和冒泡查詢我們應該是最熟悉的了,如果這兩個還不會,真的要加把勁兒了。剛好最近演算法老師在講分治思想,剛好二分查詢就是根據分治思想進行設計的。在有序陣列nums中查詢乙個數字x,順序查詢的方法是將陣列nums中的元素...

折半查詢 java實現

二分查詢又稱折半查詢,它是一種效率較高的查詢方法。二分查詢要求 1.必須採用順序儲存結構 2.必須按關鍵字大小有序排列。二分查詢又稱折半查詢,它是一種效率較高的查詢方法。二分查詢要求 1.必須採用順序儲存結構 2.必須按關鍵字大小有序排列。author administrator public cl...