1. 程式人生 > 實用技巧 >python--二分法的學習

python--二分法的學習

#演算法:是高效解決問題的辦法
#演算法之二分法

#在列表中尋找自己想要的那一個值

# l=[11,22,33,44,66,88,99,111,333,555]
# need_value=111
# for i in l:
# if i==need_value:
# print("find it")
# break

#方法2:
# def binary_search(need_value,l)
# mid_value=中間的值
# if need_value > mid_value:
# 列表=列表的右半部分
# 本身程式碼(列表)
# else:
# need_value < mid_value:
# 列表=原列表的左半部分
# 本身程式碼(列表)
# else:
# 找到了
#

def binary_search(need_value,l):
mid_index=len(l)//2
mid_value=l[mid_index]
if need_value > mid_value:
#列表=列表切片右半部分
l=l[mid_index+1:]
print(l)
binary_search(need_value, l)
#本身程式碼(列表)
elif need_value < mid_value:
l=l[ :mid_index]
print(l)
#列表=原列表的左半部分
#本身程式碼(列表)
binary_search(need_value, l)
else:

print("find it")

l=[11,22,33,44,66,88,99,111,333,555]
need_value=111

binary_search(need_value,l)