Python 数据结构--查找
1 顺序查找O(n)
def sequential_search(a_list, item):
pos = 0
found = False
while pos < len(a_list) and not found:
if a_list[pos] == item:
found = True
else:
pos = pos+1
return found
test_list = [1, 2, 32, 8]
print sequential_search(test_list, 3)
print sequential_search(test_list, 32)
2 二分查找O(lgn)
def binary_search(a_list, item):
first = 0
last = len(a_list)-1
found = False
while first <= last and not found:
midpoint = (first+last)//2
if a_list[midpoint] == item:
found = True
elif a_list[midpoint] < item:
first = midpoint+1
else:
last = midpoint-1
return found
test_list = [1, 2, 3, 4, 5, 6]
print binary_search(test_list, 3)
print binary_search(test_list, 0)
3 哈希查找O(1)
概念:来自wikipedia

Python 数据结构--查找的更多相关文章
- python数据结构与算法——链表
		
具体的数据结构可以参考下面的这两篇博客: python 数据结构之单链表的实现: http://www.cnblogs.com/yupeng/p/3413763.html python 数据结构之双向 ...
 - python数据结构之图深度优先和广度优先实例详解
		
本文实例讲述了python数据结构之图深度优先和广度优先用法.分享给大家供大家参考.具体如下: 首先有一个概念:回溯 回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标.但当探索到 ...
 - python数据结构与算法
		
最近忙着准备各种笔试的东西,主要看什么数据结构啊,算法啦,balahbalah啊,以前一直就没看过这些,就挑了本简单的<啊哈算法>入门,不过里面的数据结构和算法都是用C语言写的,而自己对p ...
 - python数据结构之图的实现
		
python数据结构之图的实现,官方有一篇文章介绍,http://www.python.org/doc/essays/graphs.html 下面简要的介绍下: 比如有这么一张图: A -> B ...
 - python 字符串查找
		
python 字符串查找有4个方法,1 find,2 index方法,3 rfind方法,4 rindex方法. 1 find()方法: )##从下标1开始,查找在字符串里第一个出现的子串:返回结果3 ...
 - Python数据结构与算法--List和Dictionaries
		
Lists 当实现 list 的数据结构的时候Python 的设计者有很多的选择. 每一个选择都有可能影响着 list 操作执行的快慢. 当然他们也试图优化一些不常见的操作. 但是当权衡的时候,它们还 ...
 - Python数据结构与算法--算法分析
		
在计算机科学中,算法分析(Analysis of algorithm)是分析执行一个给定算法需要消耗的计算资源数量(例如计算时间,存储器使用等)的过程.算法的效率或复杂度在理论上表示为一个函数.其定义 ...
 - Python数据结构与循环语句
		
# Python数据结构与循环语句: 首先编程是一项技能,类似跑步,期初不必在意细节,能使用起来就行,等学的游刃有余了再回过头来关注细节问题也不迟. 关于买书: 学会python之后,才需要买书 ...
 - python数据结构之栈与队列
		
python数据结构之栈与队列 用list实现堆栈stack 堆栈:后进先出 如何进?用append 如何出?用pop() >>> >>> stack = [3, ...
 
随机推荐
- python-前20天的着重知识点
			
1.CPU存在两种工作状态:一种是内核态,操作系统在运行--可以操作硬件: 另一种是用户态,是应用软件在运行--不可以操作硬件. 应用软件要控制硬件,就要从用户态切换成内核态 2.多道技术:(多道指的 ...
 - thinkphp3.1.3导入
			
1.首先我们做导入一定要在我们的项目中导入一个 PHPExcel 下载地址:http://phpexcel.codeplex.com/ 2.下载之后就解压我们就可以看到像这样子的文件 3.就 ...
 - poj2117-tarjin求割点
			
http://poj.org/problem?id=2117 求移除一个点以及与它相邻边后,剩下的图中最大的联通子图的数量是多少. 跑一遍tarjin统计下拆除某个点剩下的子图数量即可.注意给出的图不 ...
 - Python爬虫有道翻译接口
			
import urllib.request import urllib.parse import json import hashlib from datetime import datetime i ...
 - IDEA上传一个项目到github
			
IDEA上传一个项目到github 只要3步 1. 2. 3. 4. 5.查看页面 上传成功... 详情: https://blog.csdn.net/qq_27093465/article/d ...
 - Django知识点梳理
			
Django囊括.杂糅了 前端.数据库.Python知识看起来比较复杂! 其实就是由http请求周期为主体,延伸出来的知识 . PythonWeb服务器网关接口(Python Web Server ...
 - Hexo+Github 搭建属于自己的博客(Mac下安装 其他操作系统大同小异)
			
安装前提 参考博客:http://blog.csdn.net/gdutxiaoxu/article/details/53576018#t5(写的很好,不用看我的了.....) 这篇:http://ww ...
 - makefile文件写法解析
			
一.makefile文件示例 makefile文件并不难写,一个makefile模版如下所示,所有makefile文件在此基上稍微修改就可以了. # this is a makefile #这一行是注 ...
 - docker安装使用教程(Kali2.0)
			
一.apt安装 apt直接安装是最好的,因为apt源中的其他docker相关组件,也是与docker匹配的版本. apt-get install docker docker-compose 二.手动安 ...
 - 【Jenkins】Jenkins安装修改默认路径和端口的方法
			
一.修改默认的jenkins安装路径 因为jenkins默认安装在c盘 C:\Users\Administrator\.jenkins下,那怎样将安装路径修改至d盘呢? 新建一个系统变量:JENKIN ...