python—二分法

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

   例如需要查找有序数组arr里面的某个关键字key的位置,那么首先确认arr的中位数或者中点center,下面分为三种情况:
    假如arr[center]>key,说明key在arr中心左边范围;
    假如arr[center]<key,说明key在arr中心右边范围;
    假如arr[center]=key,说明key在arr中心。

规定:
范围每次缩小一半,写个while的死循环知道找到为止。
二分法查找非常快且非常常用,但是唯一要求是要求数组是有序的。

代码:
list = [1,2,3,4,7,10,50,60,100]
min = 0
max = len(list) - 1
count = 80
while True:
print("找到了")
center = int((min+max)/2)
if list[center] > count:
max = center - 1
elif list[center] < count:
min = center + 1
elif list[center] == count:
print("索引是%d"%center)
break

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 二分法定义: 二分法是一种快速查找的方法,时间复杂度低,逻辑简单易懂,总的来说就是不断的除以2除以2... 例如需...
    玄非氪命阅读 1,722评论 0 1
  • 超高速音视频编码器用法: ffmpeg [options] [[infile options] -i infile...
    吉凶以情迁阅读 10,125评论 0 4
  • 一年回家一次,每次都像穿越到了另一幅画。周遭的色彩,景象无时不刻不在提醒自己从哪里落地发芽,走过了怎样的人生...
    一水初川阅读 3,994评论 0 1
  • 今天,我与孩子们一起去了十中,2017年中考体育测试的考点。爸爸妈妈们在考场外等待,眼睛里都充满着祝福和期...
    雒江华阅读 5,435评论 5 14
  • 整理笔记的时候已进入2018年,忆起课前风尘仆仆从长沙而来,并未褪尽旅途劳顿;课后感冒多日,浑浑噩噩;新年之前又去...
    大麦和她的绿光阅读 4,270评论 2 2