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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 二分搜尋(折半查詢)
- 搜尋/查詢
- 二分搜尋樹系列之[查詢(Search)-包含(Contain)]AI
- 二分搜尋樹系列之「查詢(Search)-包含(Contain)」AI
- Elasticsearch常用搜尋Elasticsearch
- 從二分搜尋到二叉搜尋樹
- A*搜尋演算法(python)演算法Python
- 直播系統程式碼,常用搜尋中搜尋歷史,搜尋推薦功能
- 最佳路徑搜尋(二):啟發式搜尋(代價一致搜尋(Dijkstra search),貪心搜尋,A*搜尋)
- 海量資料搜尋---搜尋引擎
- 二分搜尋之搜尋陣列中目標元素的首尾下標陣列
- 搜尋
- ubuntu 終端內查詢/搜尋Ubuntu
- 搜尋引擎-03-搜尋引擎原理
- 06 二分搜尋--ing
- 使用Google百度等搜尋引擎的常用搜尋技巧Go
- Python - 物件導向程式設計 - MRO 方法搜尋順序Python物件程式設計
- 啟發式搜尋的方式(深度優先,廣度優先)和 搜尋方法(Dijkstra‘s演算法,代價一致搜尋,貪心搜尋 ,A星搜尋)演算法
- elasticsearch之拼音搜尋Elasticsearch
- js之搜尋框JS
- 搜尋引擎es-分詞與搜尋分詞
- 點選搜尋框清空搜尋提示文字
- LeetCode入門指南 之 二分搜尋LeetCode
- bt引擎-螞蟻磁力搜尋教程大全,如何使用搜尋引擎查詢磁力連結
- A*搜尋演算法概述演算法
- 搜尋策略
- vim搜尋
- 搜尋功能
- 搜尋技巧
- 二分搜尋演算法的實現演算法
- 直播平臺開發,基礎搜尋方式之拼音搜尋
- 20240713總結(搜尋專題,但是不想搜尋)
- Elasticsearch(ES)的高階搜尋(DSL搜尋)(上篇)Elasticsearch
- Elasticsearch(ES)的高階搜尋(DSL搜尋)(下篇)Elasticsearch
- elasticsearch演算法之搜尋模型(一)Elasticsearch演算法模型
- python 寫的搜尋引擎Python
- solr搜尋之搜尋精度問題我已經盡力了!!!Solr
- 二分搜尋樹系列之[ 插入操作 (insert) ]