# -*- coding: utf-8 -*-
import numpy as np
# 二分法查詢
def my_work(list, number):
n = 0
low = 0
high = len(list)-1
try:
while low <= high:
mid = int((low+high)/2)
guss = list[mid]
if guss == number:
return mid, n
if guss > number:
high = mid - 1
else:
low = mid + 1
n += 1
except exception as e:
print(e)
if __name__ == '__main__':
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print('row data:{}\nlength of data:{}'.format(x, len(x)))
print('please input the number that you want to know : ')
y = input()
temp = my_work(x, int(y))
try:
print('查詢到{}在資料中的位置(索引)為{},查詢步數為{}步'.format(y, temp[0],
temp[1]))
except exception as e:
print('this number is not in the data!\n', e)
我曾經跨過山和大海,也穿過人山人海,我曾經擁有著的一切,轉眼都飄散如煙,我曾經失落失望失掉所有方向,直到看見平凡才是唯一的答案。
——韓寒《平凡之路》
演算法之二分法
演算法 是是一種高效解決問題的辦法 需求 有乙個按照從小到大順序排列的數字列表 需要從該數字列表中找到我們想要的那個乙個數字 如何做更高效?nums 3,4,7,10,13,21,43,77,89 find num 10nums 3,4,13,10,2,7 89 nums.sort 首先進行排序 p...
Python的演算法之二分法
一 演算法 什麼是演算法?演算法是高效解決問題的辦法。演算法之二分法針對遞迴的例項需求 有乙個按照從小到大順序排列的數字列表,查詢某乙個數字 定義乙個無序的列表 nums 3,4,5,67,8,9,124,1541,56,23637,7,37,321,21,61,515,1 nums.sort 給列...
python二分法查詢 python之二分法查詢
二分法查詢主要的作用就是查詢元素 規則.掐頭結尾取中間,必須是有序列 二分法查詢 需要你明白和掌握 lst 1,3,5,7,12,36,68,79 n int input 請輸入乙個數 left 0 right len lst 1 while left right mid left right 2 ...