将二分法查找按照面向对象的思想重写,要求:输入一个整数列表,进行二分法查找
我很抱歉图片一直上传失败
class Seek(object):
def seek(self):
t1 = input('请输入一个整数列表(请使用逗号分隔):')
t1 = t1.split(',') # 按空格分隔
t1 = [int(x) for x in t1] # 将列表中的字符串转化为数字
t1.sort() # 将列表中的数字排序
print(t1)
n = int(input('请输入查找元素:'))
i = 0
j = len(t1) - 1
while i <= j:
mid = (i + j) // 2 # 计算中间元素索引
if t1[mid] == n: # 中间元素比较
print('找到了,值:', n)
break
else:
if n < t1[mid]:
j = mid - 1 # 向左折半
else:
i = mid + 1 # 向右折半
if i > j:
print('未找到')
p1 = Seek() # 实例化Seek对象
p1.seek() # 调用seek方法