二分查找(python)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018/4/29 9:11
# @Author : Jackendoff
# @Site :
# @File : 二分树.py
# @Software: PyCharm data = [1,3,6,7,12,14,16,17,18,20,21,22,23,30,32,35] def binary_serch(dataset,find_num):
print(dataset) if len(dataset) > 1:
mid = int (len(dataset)/2)
if dataset[mid] == find_num:
print('找到数字%s'%find_num)
elif dataset[mid] > find_num:
print('找的数字在%s左边'%dataset[mid])
return binary_serch(dataset[0:mid],find_num)
else:
print("找的数字在%s右边"%dataset[mid])
return binary_serch(dataset[mid+1:],find_num)
else:
if dataset[0] == find_num:
print('找到数字')
else:
print('没有这个数字') binary_serch(data,35) #结果如下 D:\untitled\venv\Scripts\python.exe D:/untitled/bogls/二分树.py
[1, 3, 6, 7, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 35]
找的数字在18右边
[20, 21, 22, 23, 30, 32, 35]
找的数字在23右边
[30, 32, 35]
找的数字在32右边
[35]
找到数字 Process finished with exit code 0
二分查找(python)的更多相关文章
- 二分查找-python
约12年年底的时候,接触了python不到半年的样子,入门是直接实现GUI测试case的.今天面试地平线机器人,发现忘得差不多了- -. 当时的问题是这样的 写一个二分查找是实现,我好像不记得二分查找 ...
- 二分查找——Python实现
一.排序思想 二分(折半)查找思想请参见:https://www.cnblogs.com/luomeng/p/10585291.html 二.python实现 def binarySearchDemo ...
- 线性查找与二分查找(python)
# -*- coding: utf-8 -*- number_list = [0, 1, 2, 3, 4, 5, 6, 7] def linear_search(value, iterable): f ...
- 二分查找 python实现
欢迎回来 [^first blood]. 要求A是升序数组 递归 只能查 数据存不存在,不能返回下标 def binary_find(A, m): if len(A) == 0: return -1 ...
- 算法:二分查找(python版)
#!/usr/bin/env python #coding -*- utf:8 -*- #二分查找#时间复杂度O(logn)#一个时间常量O(1)将问题的规模缩小一半,则O(logn) import ...
- python算法之二分查找
说明:大部分代码是在网上找到的,好几个代码思路总结出来的 通常写算法,习惯用C语言写,显得思路清晰.可是假设一旦把思路确定下来,并且又不想打草稿.想高速写下来看看效果,还是python写的比較快.也看 ...
- python函数(4):递归函数及二分查找算法
人理解循环,神理解递归! 一.递归的定义 def story(): s = """ 从前有个山,山里有座庙,庙里老和尚讲故事, 讲的什么呢? ""& ...
- python实现二分查找算法
二分查找算法也成为折半算法,对数搜索算法,一会中在有序数组中查找特定一个元素的搜索算法.搜索过程是从数组中间元素开始的 如果中间元素正好是要查找的元素,则搜索过程结束:如果查找的数大于中间数,则在数组 ...
- Python实现二分查找
老生常谈的算法了. #!/usr/bin/python # -*- coding:utf-8 -*- # Filename: demo.py # 用python实现二分查找 def binarySea ...
- python关于二分查找
楔子 如果有这样一个列表,让你从这个列表中找到66的位置,你要怎么做? l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72 ...
随机推荐
- JSP页面获取其他页面传递的参数
jstl表达式获取方式: ${param.pid} el表达式获取方式: ${requestScope.attr} el表达式获取方式: ${attr} ---------------------- ...
- UNION和UNION ALL的作用和语法
主要就是两句话区别: union是联合的意思,就是合并两个或多个select语句的结果集,并消除重复行: union all 当然也是联合的意思,也是合并两个或多个select语句的结果集,但是保留重 ...
- 一天一个设计模式——Builder建造者模式
一.模式说明 在现实世界中,当我们要构造一个大型工程时(建一个大楼),通常的做法是先建造工程的每个独立部分,然后再逐步构造完成(先打地基,再搭框架,最后逐层累造).在程序设计领域,构造一个复杂的类时( ...
- mysql四种事务隔离级别
mysql事务并发问题 ACID什么的就不啰嗦了.mysql多个事务并发的时候,可能会出现如下问题: 1. 更新丢失 即两个事务同时更新某一条数据,后执行的更新操作会覆盖先执行的更新操作,导致先执行的 ...
- halcoN GPU
halcon18.11——DL http://www.ihalcon.com/read-11150.html 楼主# 更多发布于:2018-12-04 19:50 1. 按顺序下载安装 h ...
- NRF24L01中断双向传输数据
NRF24L01是一款比较常见的无线通讯芯片,不过有个缺点就是只能半双工通讯,当涉及到双向通讯时就比较麻烦一些·,特别是想要做无线IAP数据需要一直来回发送,这点无疑然人恶心到想吐,不过还好有数据中断 ...
- 18 12 18 给服务器添加logging 日志功能
Python中有个logging模块可以完成相关信息的记录,在debug时用它往往事半功倍 1. 日志级别 日志一共分成5个等级,从低到高分别是: DEBUG INFO WARNING ERROR C ...
- npm全局权限设置 - Mac
网络上的常见方法 目前网络上常见的方法都是修改npm安装路径的权限 通过使用命令 npm config get prefix 得到npm的路径,结果大部分都是/usr/local.然后,很多方法都会要 ...
- PHP SeasLog实现高性能日志记录
https://www.jianshu.com/p/b5c01eb49df0 windows 安装 注意查看上面的信息 我标注了几个关键点 然后下载自己对应的 https://windows.php ...
- Cookie API和记录上次来访时间
1.什么是Cookie? Cookie是一种会话技术,用千将会话过程中的数据保存到用户的浏览器中,从而使浏览器和服务器可以更好地进行数据交互. 在现实生活中,当顾客在购物时,商城经常会赠送顾客一张会员 ...