博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基础算法 ---> 二分法
阅读量:6302 次
发布时间:2019-06-22

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

二分法本质:

  二分法是以数组中间为分界线(这里k为中间索引),

  当array[k] > num 则继续搜索数组前半部分

  当array[k] < num 则继续搜索数组后半部分

 方法一: 

def BinarySearch(array,num):    low = 0    height = len(array)-1    while low <= height:        mid = (low+height)//2        if array[mid] < num:                low = mid + 1        elif array[mid] > num:            height = mid - 1        else:            return array[mid]    return -1print (BinarySearch([1,2,3,34,56,57,78,87],87))

方法二:

def bs(array, num):    while len(array):        k = len(array) // 2        if array[k] < num:            array = array[k+1::]        elif array[k] > num:            array = array[0:k]        else:            return array[k]    returnarray = [1, 2 ,3, 4, 5, 6, 8, 9]print(bs(array, 5))

注意:二分法只能查找有序的数列      

 

转载于:https://www.cnblogs.com/bianjing/p/9481664.html

你可能感兴趣的文章
内存分布简视图
查看>>
POJ 2918 求解数独
查看>>
如何学习虚拟现实技术vr? vr初级入门教程开始
查看>>
第4 章序列的应用
查看>>
Mysql explain
查看>>
初识闭包
查看>>
java tcp socket实例
查看>>
011 指针的算术运算
查看>>
hdu1874畅通工程续
查看>>
rails 字符串 转化为 html
查看>>
java-学习8
查看>>
AOP动态代理
查看>>
Oracle序列
查看>>
xcodebuild命令行编译错误问题解决
查看>>
Yii2.0 下的 load() 方法的使用
查看>>
华为畅玩5 (CUN-AL00) 刷入第三方twrp Recovery 及 root
查看>>
LeetCode----67. Add Binary(java)
查看>>
母版页 MasterPage
查看>>
[转] ReactNative Animated动画详解
查看>>
DNS原理及其解析过程
查看>>