二分查找 python实现
欢迎回来 ^first blood.
要求A是升序数组
递归
只能查 数据存不存在,不能返回下标
def binary_find(A, m):
	if len(A) == 0:
		return -1
	i = int(len(A)/2)
	if A[i] == m:
		return i
	if A[i] > m and i - 1 > 0
		return binary_find(A[0:i], m)
	if A[i] < m and len(A)- (i+1) > 0
		return binary_find(A[i+1 : ], m)
	return -1
不用递归
可返回下标
def	binary_find(A, m):
	low = 0
	high = len(A) - 1
	while low <= high:
        i = int( (low + high) / 2)
        if A[i] == m:
            return i
        if A[i] > m:
            high = i - 1
        else:
            low = i + 1
        return None
												
											二分查找 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版)
		
#!/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 ...
 
随机推荐
- 学习CSS之如何改变CSS伪元素的样式
			
一.CSS伪元素 CSS 伪元素用于向某些选择器设置特殊效果. 伪元素的用法如下: selector:pseudo-element {property:value;} CSS 类也可以和伪元素搭配使用 ...
 - IntelliJ IDEA与eclipse生成JavaDoc的方法
			
JavaDoc是一种将注释生成HTML文档的技术. 1.使用javadoc命令生成文档 首先了解一下javadoc指令的用法 用法: javadoc [options] [packagenames] ...
 - 秘钥分割-Shamir秘钥分割门限方案
			
精选: 1.问题的提出 2.需求的抽象: 有一个秘钥S,转换成另一种数据数据形式,分配给12个人(s1,s2,.......,s12),使得任意3个人的数据拼凑在一起就可以反向计算出秘钥S. 3.解决 ...
 - Java中的合并与重组(上)
			
通过优锐课核心java学习笔记中,我们可以看到,码了很多专业的相关知识, 分享给大家参考学习. 虽然在Git中合并和重组是相似的,但它们具有两种不同的功能. 要保持自己的历史记录整洁或完整,这是你应该 ...
 - java读取中文文本文件乱码问题
			
今天遇到的问题是这样:用java读取一个中文文本文件,但读取到的却是乱码,之前一直没有问题,查清楚后,原来是因为今天是用的windows的记事本来编辑的文件,因编码方式是的不同而导致了乱码,解决方法就 ...
 - git本地创建多个分支互不干扰
			
git本地创建多个分支,互不干扰. 情景:在做某个需求a时,先需要修改紧急bug b:发版时发的是远程dev的代码. 方式一(推荐): (1)本地已有分支dev,写了需求a,先commit,即将工 ...
 - Notes writer Pro
			
Notes writer Pro pen钢笔和Pencil铅笔发现没啥区别 笔记软件使用说明书: https://www.lanzous.com/i777i3c
 - HTML(多行)文本超过部分隐藏,末尾显示(...)
			
HTML(多行)文本超过部分隐藏,末尾显示(...) <!DOCTYPE html> <html> <head> <meta charset="ut ...
 - windows服务踩的坑
			
最近写了一个windows服务 有一些bug最后终于解决了还是写点经验把. 第一点.版本问题,因为是小白,第一次写windows服务,选择的是.net4.6.1的目标框架,因为我的电脑是windows ...
 - Dictionary的基本用法
			
1.创建泛型哈希表,然后加入元素 Dictionary<string,string> openWith=new Dictionary<string, string>(); op ...