#32796: 二分搜尋


yoyo147644@gmail.com (306-18蕭宇祐)

學校 : 不指定學校
編號 : 205153
來源 : [114.26.41.165]
最後登入時間 :
2023-01-10 08:53:52
d732. 二分搜尋法 | From: [114.26.75.162] | 發表日期 : 2022-11-08 09:20

a,b=map(int, input().split()) #輸入a,b
n1=list(map(int, input().split())) #輸入一個n1陣列
n2=list(map(int, input().split())) #輸入一個n2陣列
for i in range(b): #從0到b-1
 key  = n2[i] #key=n2陣列[i]           #二元搜尋法
 ret = -1 #ret=-1
 low = 0 #第一個數=0
 upper = len(n1) - 1 #n陣列最後一個數-1
 while low <= upper: #while迴圈low小於等於upper
  mid = (low + upper) // 2 #算出中間值
  if n1[mid] < key: #如果n1陣列中間值小於key
    low = mid + 1 #執行mid+1=low
  elif n1[mid] > key: #如果n1陣列中間值大於key
    upper = mid - 1 #執行mid+1=upper
  else: #否則
    ret = mid #ret等於mid
    low = upper + 1 #low=upper+1
 if ret != -1: #如果ret不等於-1
  print(ret+1) #輸出ret+1
 else: #否則
  print(0) #找不到就輸出0
 
ZeroJudge Forum