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切片用法实例教程
Sep 08 Python
Python连接mssql数据库编码问题解决方法
Jan 01 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
Dec 23 Python
Python字符串格式化%s%d%f详解
Feb 02 Python
遗传算法python版
Mar 19 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
Jul 04 Python
python之验证码生成(gvcode与captcha)
Jan 02 Python
Python中正则表达式的用法总结
Feb 22 Python
Djang的model创建的字段和参数详解
Jul 27 Python
Python3 hashlib密码散列算法原理详解
Mar 30 Python
Python sorted排序方法如何实现
Mar 31 Python
python 制作磁力搜索工具
Mar 04 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
隐藏X-Space个人空间下方版权方法隐藏X-Space个人空间标题隐藏X-Space个人空间管理版权方法
2007/02/22 PHP
php 计划任务 检测用户连接状态
2012/03/29 PHP
解决Codeigniter不能上传rar和zip压缩包问题
2014/03/07 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
JMenuTab简单使用说明
2008/03/13 Javascript
JavaScript CSS修改学习第二章 样式
2010/02/19 Javascript
Javascript 正则表达式实现为数字添加千位分隔符
2015/03/10 Javascript
Ajax中解析Json的两种方法对比分析
2015/06/25 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
jquery 正整数数字校验正则表达式
2017/01/10 Javascript
Bootstrap3下拉菜单的实现
2017/02/22 Javascript
javascript input输入框模糊提示功能的实现
2017/09/25 Javascript
jquery ztree实现右键收藏功能
2017/11/20 jQuery
用ES6的class模仿Vue写一个双向绑定的示例代码
2018/04/20 Javascript
详解Angular5 路由传参的3种方法
2018/04/28 Javascript
JavaScript门道之标准库
2018/05/26 Javascript
vue中锚点的三种方法
2018/07/06 Javascript
JS根据Unix时间戳显示发布时间是多久前【项目实测】
2019/07/10 Javascript
构建Vue大型应用的10个最佳实践(小结)
2019/11/07 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
JS绘图Flot应用图形绘制异常解决方案
2020/10/16 Javascript
Python处理json字符串转化为字典的简单实现
2016/07/07 Python
Python中.py文件打包成exe可执行文件详解
2017/03/22 Python
python文件拆分与重组实例
2018/12/10 Python
python+pyqt5实现24点小游戏
2019/01/24 Python
pandas.cut具体使用总结
2019/06/24 Python
django框架auth模块用法实例详解
2019/12/10 Python
python中温度单位转换的实例方法
2020/12/27 Python
利用CSS3实现毛玻璃效果示例源码
2016/09/25 HTML / CSS
CSS3中的Transition过度与Animation动画属性使用要点
2016/05/20 HTML / CSS
Snapfish英国:在线照片打印和个性化照片礼品
2017/01/13 全球购物
德国最大的婴儿用品网上商店:Kidsroom.de(支持中文)
2020/09/02 全球购物
党政领导班子群众路线对照检查材料思想汇报
2014/09/27 职场文书
goland 恢复已更改文件的操作
2021/04/28 Golang
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android
Python实战之OpenCV实现猫脸检测
2021/06/26 Python