Python实现在某个数组中查找一个值的算法示例


Posted in Python onJune 27, 2018

第一种算法思路:

第一步:随机出来一个数组的下标

第二步:判断下标对应的值是否等于被查找的值,是的话终止,已找到,否的话转第三步。

第三步:判断是否随机完数组的所有下标,是的话终止,没找到,否的话转第一步。

代码如下:

#本程序的功能是在字典中查找存在某个值
import random
di = {'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
key = 2
di1 = {}
while True:
 tmp = random.choice(di.keys()) #随机
 if di[tmp] == key:
  print 'ok'    #已找到key值
  break
 di1.update({tmp:di[tmp]}) #更新字典di1
 if di1 == di:    #判断是否随机到了字典中的所有值,来决定是否接着循环
  print 'no'
  break

第二种算法思路:

线性查找法,即在数组中顺序的查找key值,找到就终止,没找到的话,一直查找到数组的末尾。

代码如下:

# -*- encoding:utf-8 -*-
li = [1,2,3,4,5,6]
key = 90
i = len(li)-1
while i >= 0:
 if li[i] == key:
  print '在li[%d]的处找到key值' % i
  break
 i -= 1
else:
 print '没找到'

第三种算法思路:

实际上是递归的二分查找算法,代码如下:

#python实现递归的二分查找算法
li = [1,2,3,4,5,6,7]
def find(li,key):
 if len(li)==1:
  if li[0] == key:
   return True
  return False
 m = len(li)/2
 if find(li[:m],key) or find(li[m:],key):
  return True
 else:
  return False
print find(li,8)

对于算法的代码实现还有待优化,对于上述三种算法的运行时间,因本人才疏学浅,还没有具体分析。

以上这篇Python实现在某个数组中查找一个值的算法示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 编码规范整理
May 05 Python
使用Python的Django和layim实现即时通讯的方法
May 25 Python
Numpy中的mask的使用
Jul 21 Python
Django REST framework视图的用法
Jan 16 Python
python实现弹窗祝福效果
Apr 07 Python
PyQt5创建一个新窗口的实例
Jun 20 Python
Python 获取项目根路径的代码
Sep 27 Python
python对象转字典的两种实现方式示例
Nov 07 Python
python线程定时器Timer实现原理解析
Nov 30 Python
Python将列表中的元素转化为数字并排序的示例
Dec 25 Python
pytorch 实现在预训练模型的 input上增减通道
Jan 06 Python
opencv python 对指针仪表读数识别的两种方式
Jan 14 Python
使用Python对微信好友进行数据分析
Jun 27 #Python
python实现列表中由数值查到索引的方法
Jun 27 #Python
numpy返回array中元素的index方法
Jun 27 #Python
Python 查看list中是否含有某元素的方法
Jun 27 #Python
python寻找list中最大值、最小值并返回其所在位置的方法
Jun 27 #Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
Jun 27 #Python
python numpy和list查询其中某个数的个数及定位方法
Jun 27 #Python
You might like
mysq GBKl乱码
2006/11/28 PHP
WordPress开发中的get_post_custom()函数使用解析
2016/01/04 PHP
Windows2003下php5.4安装配置教程(IIS)
2016/06/30 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
2017/12/31 PHP
PHP常量define和const的区别详解
2019/05/18 PHP
Laravel框架下载,安装及路由操作图文详解
2019/12/04 PHP
如何用javascript判断录入的日期是否合法
2007/01/08 Javascript
javascript 特性检测并非浏览器检测
2010/01/15 Javascript
在jQuery 1.5中使用deferred对象的代码(翻译)
2011/03/10 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
JavaScript前端图片加载管理器imagepool使用详解
2014/12/29 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
2015/06/19 Javascript
JS实现自动变换的菜单效果代码
2015/09/09 Javascript
Javascript基于AJAX回调函数传递参数实例分析
2015/12/15 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
div实现自适应高度的textarea实现angular双向绑定
2017/01/08 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
详解a标签添加onclick事件的几种方式
2019/03/29 Javascript
vue源码nextTick使用及原理解析
2019/08/13 Javascript
JavaScript实现雪花飘落效果
2020/12/27 Javascript
使用pandas批量处理矢量化字符串的实例讲解
2018/07/10 Python
Python 异常处理Ⅳ过程图解
2019/10/18 Python
python读取Kafka实例
2019/12/23 Python
Python如何读写二进制数组数据
2020/08/01 Python
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
浅谈pc和移动端的响应式的使用
2019/01/03 HTML / CSS
创建索引时需要注意的事项
2013/05/13 面试题
幼教求职信
2014/03/12 职场文书
居委会四风问题个人对照检查材料
2014/09/25 职场文书
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
2015年端午节活动方案
2015/05/05 职场文书
酒店员工手册范本
2015/05/14 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python