Python 二分法

二分法定义:

  • 二分法是一种快速查找的方法,时间复杂度低,逻辑简单易懂,总的来说就是不断的除以2除以2...

例如需要查找有序数组array里面的某个关键字key的位置,那么首先确认array的中位数或者中点center,下面分为三种情况:

  • 假如array[center]>key,说明key在array中心左边范围;
  • 假如array[center]<key,说明key在array中心右边范围;
  • 假如array[center]=key,说明key在array中心。

代码实现:

array = [1,4,2,45,65,76,2,0]
key = 65
min = 0
max = len(array)-1#取array的索引
center = int((min+max)/2) #加int,防止出现浮点数
if key in array:
    while True: #建立死循环,使其找到key为止
        if array[center] > key:
            center = center -1
        elif array[center] > key:
            center = center +1
        elif array[center] == key:
            print(str(key)+'在array里面第'+str(center)+'个位置')
            break #找到之后终止
else:
    print('没有该数字')

运行效果

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容