Python之 常用查詢演算法:最小項搜尋、順序搜尋、二分搜尋
最小項搜尋
def min_search(items):
"""
最小項搜尋
:param items:
:return:
"""
min_index = 0
for i in range(len(items)):
if items[min_index] > items[i]:
min_index = i
return 'min index: {}'.format(min_index)
順序搜尋
def order_search(target, items):
"""
順序搜尋,常用遍歷方法, O(n)
:param target:
:param items:
:return:
"""
position = 0
while position < len(items):
if target == items[position]:
return 'where index: {}'.format(position)
position += 1
return '404 Not FOUND!:('
二分(叉)搜尋
def binary_search(target, items):
"""
二分查詢(二叉搜尋),O(log2n)
前置條件:列表已排好序
:param target:
:param items:
:return: 無錫看婦科的醫院
"""
left = 0
right = len(items) - 1
while left <= right:
middle = (left + right) // 2
if target == items[middle]:
return 'where index: {}'.format(middle)
elif target > items[middle]:
left = middle + 1
else:
right = middle - 1
return -1
測試 main() 函式示例
if __name__ == '__main__':
items1 = [1, 3, 6, 23, 0]
min_search_res = min_search(items1)
print('最小值索引:', min_search_res)
items2 = [1, 3, 6, 23, 66]
order_search = order_search(23, items2)
print('順序查詢:', order_search)
items3 = [1, 3, 6, 23, 66]
search_res = binary_search(66, items3)
print('二分查詢:', search_res)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2658847/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 二分搜尋(折半查詢)
- 尋路之 A* 搜尋演算法演算法
- #演算法#二分搜尋演算法
- Elasticsearch常用搜尋Elasticsearch
- 二分搜尋樹系列之[查詢(Search)-包含(Contain)]AI
- 二分搜尋樹系列之「查詢(Search)-包含(Contain)」AI
- 海量資料搜尋---搜尋引擎
- A*搜尋演算法(python)演算法Python
- 二分搜尋之搜尋陣列中目標元素的首尾下標陣列
- profile,rcfile的搜尋執行順序(轉)
- ubuntu 終端內查詢/搜尋Ubuntu
- 直播系統程式碼,常用搜尋中搜尋歷史,搜尋推薦功能
- 使用Google百度等搜尋引擎的常用搜尋技巧Go
- 啟發式搜尋的方式(深度優先,廣度優先)和 搜尋方法(Dijkstra‘s演算法,代價一致搜尋,貪心搜尋 ,A星搜尋)演算法
- elasticsearch之拼音搜尋Elasticsearch
- js之搜尋框JS
- 【譯】Swift演算法俱樂部-二分搜尋Swift演算法
- 二分搜尋演算法的實現演算法
- elasticsearch搜尋Elasticsearch
- 字串搜尋字串
- vim搜尋
- A*搜尋演算法概述演算法
- 搜尋框帶有搜尋提示點選消失程式碼例項
- Elasticsearch(ES)的高階搜尋(DSL搜尋)(上篇)Elasticsearch
- Elasticsearch(ES)的高階搜尋(DSL搜尋)(下篇)Elasticsearch
- Python - 物件導向程式設計 - MRO 方法搜尋順序Python物件程式設計
- 常用的 PHP 搜尋排序算演算法PHP排序演算法
- elasticsearch演算法之搜尋模型(一)Elasticsearch演算法模型
- 谷歌搜尋用上BERT,10%搜尋結果將改善谷歌
- 直播開發app,實時搜尋、搜尋引擎框APP
- 泛企業搜尋PK網際網路搜尋
- 二分搜尋樹元素的插入
- 演算法總結--搜尋演算法
- Elasticsearch——全文搜尋Elasticsearch
- Elasticsearch 向量搜尋Elasticsearch
- elasticsearch搜尋商品Elasticsearch
- jQuery 模糊搜尋jQuery
- Google搜尋大法Go