博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二分法查找--Python
阅读量:6838 次
发布时间:2019-06-26

本文共 674 字,大约阅读时间需要 2 分钟。

二分查找算法,最常规的应用就是在一个有序数组中找特定的数。

一般分为四步走: 
1. 判定条件为low小于high,low=0, high=size-1 
2. mid=(low+high) / 2 
3. 如果data[mid]满足条件直接返回,如果满足条件的数据在mid的右边则将low=mid+1,如果满足条件的数据在mid左边则将high=mid-1
4. 根据条件再次判定low,high两个元素是否满足条件 
其实整个过程就不断缩小范围的过程。

 

def binary_search(list, target):    low = 0    high = len(list) - 1    while(low < high):        mid = int((low + high) / 2)        if(target == list[mid]):            return mid        elif(target < list[mid]):            high = mid - 1        else:            low = mid + 1    return -1if __name__ == '__main__':    list = [1,2,3,4,5,6,7,8,9,10]    index = binary_search(list, 6)    print(index)

 

转载于:https://www.cnblogs.com/fredkeke/p/9232475.html

你可能感兴趣的文章
obj-c 坑
查看>>
软件测试艺术一:程序正确性证明
查看>>
面向对象课程第二单元作业总结
查看>>
2549 自然数和分解
查看>>
ATL CLR MFC Win32 常规 的区别
查看>>
java中判断字符串是否为数字的方法的几种方法
查看>>
查看SQL Server Resource Database以及修改系统表
查看>>
SQL Server native client与sqlcmd单独安装
查看>>
scau实验题 8596 Longest Ordered Subsequence
查看>>
getopt例子
查看>>
浅说Java中的反射机制(一)
查看>>
jquery之行自加自减
查看>>
python生成wheel包注意事项
查看>>
单向链表的有关操作(链式存储结构)
查看>>
Spring @PostConstruct and @PreDestroy example
查看>>
软件架构师2
查看>>
单链表的操作
查看>>
没事抽空学——常用界面组件属性
查看>>
《程序员代码面试指南》第二章 链表问题 构造链表和节点的实体
查看>>
【LeanEAP.NET】精益企业应用平台---源码&Demo下载
查看>>