python 二分法

原理:所谓的“二分法”是通过获取列表的中间位置后,根据中间位置来进行判断需要查找的数字的大小在左边还是右边,然后继续判断

注意:数列必须是有序数列

下面参看代码:

 def erfen(sums, key):

    start = 0
    end = len(sums)-1
    if key in sums:
        while True:
            center = int((start+end)/2)
            if sums[center] > key:
                end = center-1
            elif sums[center] < key:
                start = center+1
            elif sums[center] == key:
                print(str(key)+'在数组里面的第'+str(center)+'个位置')
                return sums[center]
    else:
        print('该数字不在列表中,请重新输入!')


if __name__ == "__main__":
    sums = [1, 6, 9, 12, 14, 16, 18, 23, 26, 28, 30, 32, 34, 36, 41, 45,
            47, 53, 56, 98]
    while True:
        key = input('请输入列表中要查找的数字:')
        if key == '':
            print('谢谢使用')
            break
        else:
            erfen(sums, int(key))

下面数运行结果:
请输入列表中要查找的数字:6
6在数组里面的第1个位置
请输入列表中要查找的数字:18
18在数组里面的第6个位置
请输入列表中要查找的数字:53
53在数组里面的第17个位置
请输入列表中要查找的数字:43
该数字不在列表中,请重新输入!
请输入列表中要查找的数字:
谢谢使用
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 二分法定义: 二分法是一种快速查找的方法,时间复杂度低,逻辑简单易懂,总的来说就是不断的除以2除以2... 例如需...
    玄非氪命阅读 1,716评论 0 1
  • 原理 二分法查找的原理非常直观和易于理解:假设有一个已经排序好的列表,在其中查找某个元素,如果查找到,就返回该元素...
    AndersQ阅读 5,613评论 0 0
  • 定义:二分法是一种快速查找的方法,时间复杂度低,逻辑简单易懂,总的来说就是不断的除以2除以2... 规定:范围每次...
    4c7e6478f472阅读 2,839评论 0 0
  • 离别的时候 你划着桨 含泪的眼睛 如来时般欢畅 别了 我的美人 看此刻湖面上 正波光荡漾 再会 再会 再会吧!
    乐见心阅读 2,523评论 0 3
  • 期待着,期待着,春风来了,柳树醒了,一周一次又到了见兔姐姐的日子,兔姐姐像仙女一样如期而至,空气中都弥漫着着欢乐的...
    河北清河马屯小学冯俊华阅读 2,642评论 0 3