如何在数组上查找中间数字



我试着像游戏一样设计程序。

所以我在 python 上有一个数组; 数组 = [1, 2, 5, 20, 40, 50, 60, 70, 100, 888, 999, 1000]

当我启动程序时,它需要作为数组中间的查找工作,并问自己它的数字比我们输入的数字更大。还是更小?所以我们说我们启动了程序,它将像那样开始;

  • 数据<60(数组中间(
  • 键入的数字更大? ?
  • 888 这是我选择的号码? 如果是,那么恭喜你,如果不是
  • 它问自己数组号大于还是小于类型化值?

它实际上有点复杂。

我的问题是,如果程序会注意到数组编号小于给出错误数字的值:

elif ortalen > index:
ortalen = int((minlen + ortalen)/2)

法典:

import numpy as np
Array = [1, 2, 5, 20, 40, 50, 60, 70, 100, 888, 999, 1000]
searchFor = 888
minlen = 0
maxlen = len(Array)
ortalen = int((maxlen/2))
index = 0
while True:
index += 1
bum = Array[index]
if bum == searchFor:
break
else:
pass
while True:
#60
ortasayi = Array[ortalen]
if ortasayi == searchFor:
print("congratulations.")
break
elif ortalen < index:
ortalen = int((maxlen + ortalen)/2)
elif ortalen > index:
ortalen = int((minlen + ortalen)/2)
#new program
array= [2, 5, 1, 20, 40, 50, 60, 70, 100, 888, 999, 1000]
searchFor = 1000
array.sort()
array_uzunlugu = len(array)
array_baslangic = (array_uzunlugu - array_uzunlugu)
array_yarisi = int((len(array)/2))
orta_deger = array[array_yarisi]
while True:
print(array_yarisi)
orta_deger = array[array_yarisi]
if orta_deger < searchFor:
make = True             
array_eski = array_yarisi
try:
if bum == True:
array_yarisi = int((array_yarisi + array_eski2)/2)
except:
array_yarisi = int((array_yarisi + array_uzunlugu)/2)
elif orta_deger > searchFor:
try:
if make == True:
array_yarisi = int((array_yarisi+array_eski)/2)
except:
bum = True
array_eski2 = array_yarisi
array_yarisi = int((array_yarisi)/2)
elif orta_deger == searchFor:
print("tebrikler.")
break

最新更新