二分查詢Python3 實現

2021-08-28 08:26:23 字數 1195 閱讀 7148

# -!- coding: utf-8 -!-

# !/usr/bin/env python 3.6.3

# author: vivian

# time: 2018/9/22

# 是排序後的序列,且支援下標索引的順序表

# 二分查詢適用物件:有序順序表

def binary_search(alist, data):

# if len(alist):#查詢的終止遞迴條件

# mid = (len(alist)) // 2

# if alist[mid] == data:

# return true

# elif data < alist[mid]:

# return binary_search(alist[:, mid], data)

# else:

# return binary_search(alist[mid + 1:], data)

# else:

# return false

#為何我編寫的上標越界,由於使用了none,區別於node=none

mid = (len(alist)) // 2

#if len(alist) ==0:#終止的失敗條件,正確

#if alist == :#正確

#if alist is no=ne:這種是錯誤表達

if len(alist) == 0: # 終止的失敗條件,正確

return false

elif data==alist[mid]:#成功條件

return true

elif data < alist[mid]:#遞迴條件

return binary_search(alist[:, mid], data)

else:

return binary_search(alist[mid + 1:], data)

if __name__=='__main__':

a=[0,1,2,3,4,5,6,7,8,9]

result1=binary_search(a,8)

print(result1)

result2=binary_search(a,100)

print(result2)

二分查詢(Python3)

它接受乙個待查詢的整數值和乙個已經有順序的整數陣列作為引數。如果待查詢的整數值存在於陣列中,則返回它在陣列中的索引,否則提示該數值不在陣列中。print 有序陣列中的二分查詢 key int input 請輸入您要查詢的整數 c 10,11,12,17,19,21,22,24,32,38,49,51...

Python3二分查詢

給定乙個排序的整數陣列 公升序 和乙個要查詢的整數target,用o logn 的時間查詢到target第一次出現的下標 從0開始 如果target不存在於陣列中,返回 1。樣例樣例 1 輸入 1,4,4,5,7,7,8,9,9,10 1 輸出 0 樣例解釋 第一次出現在第0個位置。樣例 2 輸入 ...

python3 二分查詢

請實現有重複數字的有序陣列的二分查詢。輸出在陣列中第乙個大於等於查詢值的位置,如果陣列中不存在這樣的數,則輸出陣列長度加一。示例1 5,4,1,2,4,4,5 3 二分查詢 param n int整型 陣列長度 param v int整型 查詢值 param a int整型一維陣列 有序陣列 ret...