python演算法之二分法系統

2021-08-28 08:28:54 字數 998 閱讀 7210

# -*- 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 ...