Commit 57b2ae6a by BellCodeEditor

auto save

parent dd3986b0
Showing with 55 additions and 4 deletions
num_list = [1, 3, 5, 8, 11, 15, 17, 18, 20, 21]
def ercha(name_list,goal):
low=0
hight=len(name_list)-1
while low<=hight:
mid=(low+hight)//2
num=name_list[mid]
if num==goal:
return mid
elif num<goal:
low=mid+1
else:
high=mid-1
return None
res=ercha(num_list,20)
print(res)
\ No newline at end of file
......@@ -27,7 +27,7 @@ def erfen(alist,number):
mid = (low+high)//2
num = alist[mid]
if num == number:
print("索引:",mid)
#print("索引:",mid)
return mid
#break
......@@ -36,5 +36,5 @@ def erfen(alist,number):
else:
high = mid-1
return None
res = erfen(num_list,2)
print(res)
res = erfen(num_list,1)
print("索引:",res)
import random
alist = []
for i in range(1, 101):
alist.append(i)
num = random.choice(alist)
# 请完善二分查找函数binary_search(),查找出num在列表alist里面的索引位置
def binary_search(alist,num):
low = 0 # 初始最低索引
high = len(alist)-1 # 初始最高索引
while low <= high: # 当最低索引小于等于最高索引
mid = (low + high) // 2
guess = alist[mid]
if guess == num: # 中间值等于查找对象,返回索引
return mid
elif guess < num: # 中间值小于查找对象
low = mid + 1
else: # 中间值大于查找对象
high = mid - 1
return None
result = binary_search(alist, num)
print("老师给的数是:", num)
print("它在列表里的索引是:", result) # 列表从1开始,索引从0开始,所以少1
\ No newline at end of file
......@@ -11,14 +11,19 @@ else:
# 使用二分查找法,找出9和20在列表里面的索引
num_list = [1, 3, 5, 8, 11, 15, 17, 18, 20, 21]
#要查找的数
goal = 20
low = 0
high = len(num_list)-1
while low<=high:
#取中间值的索引位置
mid = (low+high)//2
#取中间值
num = num_list[mid]
if num==goal:
print("索引",mid)
print("索引",mid)
break
elif num<goal:
low = mid+1
......@@ -26,3 +31,4 @@ while low<=high:
high = mid-1
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment