当前位置: 首页 > news >正文

二分法:从一个只包含数字的list中查找某个数

二分法:从一个只包含数字的list中查找某个数
复制代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2017/4/10 19:03
# @Author  : MnCu
# @Site    : 
# @File    : start.py
# @Software: PyCharm
import socket
import asyncio.coroutines
from tornado.web import Application
from tornado.web import RequestHandler
from tornado import ioloop
from tornado import gen


def b_s(li, num):
    bottom, top = 0, len(li)
    while bottom < top:
        mid = int((top + bottom)/2)
        if li[mid] > num:
            top = mid - 1
        elif li[mid] < num:
            bottom = mid + 1
        else:
            return mid
    return bottom if li[bottom] == num else False
def binary_search(num, li):
    bottom, top = 0,len(li) - 1
    while bottom < top:
        mid = int((bottom + top)/2)
        if mid == bottom:
            break
        if num < li[mid]:
            top = mid
        elif num > li[mid]:
            bottom = mid
        else:
            return mid
    return bottom if li[bottom] == num else False

l = [1, 4, 12, 45, 66, 99, 120, 444, 456]
print(b_s(l, 1))
复制代码
posted on 2017-05-16 21:09 叶祖辉 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/yezuhui/p/6863687.html

相关文章:

  • 直方图中最大矩形面积
  • 百度有道雅虎的实习面试经历
  • ubuntu下spring环境搭建
  • Java教程收集
  • Xmemcached vs Spymemcached 3th(linux下测试结果和多节点下表现)
  • Linux以GB显示内存大小
  • install ubuntu on Android mobile phone
  • python3学习之练习题
  • 查询缓存和执行流程
  • POJ-3984-迷宫问题-BFS(广搜)-手写队列
  • rowid去重(删除表的重复记录)
  • 完整的solr java api操作代码块
  • scala 学习笔记--闭了个包
  • JavaScript使用正則表達式
  • Java 修改页面排序条件
  • 网络传输文件的问题
  • 2017年终总结、随想
  • Apache Pulsar 2.1 重磅发布
  • chrome扩展demo1-小时钟
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • input实现文字超出省略号功能
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • js数组之filter
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Promise面试题2实现异步串行执行
  • Spring声明式事务管理之一:五大属性分析
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • Sublime Text 2/3 绑定Eclipse快捷键
  • 安装python包到指定虚拟环境
  • 番外篇1:在Windows环境下安装JDK
  • 关于springcloud Gateway中的限流
  • 基于游标的分页接口实现
  • 开源地图数据可视化库——mapnik
  • 你真的知道 == 和 equals 的区别吗?
  • 前端自动化解决方案
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 深入浅出webpack学习(1)--核心概念
  • 移动端 h5开发相关内容总结(三)
  • FaaS 的简单实践
  • ionic入门之数据绑定显示-1
  • Java性能优化之JVM GC(垃圾回收机制)
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • 整理一些计算机基础知识!
  • ​520就是要宠粉,你的心头书我买单
  • # Panda3d 碰撞检测系统介绍
  • #define、const、typedef的差别
  • #ifdef 的技巧用法
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (C++20) consteval立即函数
  • (python)数据结构---字典
  • (八)c52学习之旅-中断实验
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (三)elasticsearch 源码之启动流程分析