# -!- 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...