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实现简单QQ单用户机器人的方法
Jul 03 Python
python每隔N秒运行指定函数的方法
Mar 16 Python
Python的标准模块包json详解
Mar 13 Python
Python 中urls.py:URL dispatcher(路由配置文件)详解
Mar 24 Python
Python获取当前公网ip并自动断开宽带连接实例代码
Jan 12 Python
Python线性方程组求解运算示例
Jan 17 Python
Python访问MongoDB,并且转换成Dataframe的方法
Oct 15 Python
对python csv模块配置分隔符和引用符详解
Dec 12 Python
Python3最长回文子串算法示例
Mar 04 Python
python分布式计算dispy的使用详解
Dec 22 Python
Python小白不正确的使用类变量实例
May 29 Python
Python利用机器学习算法实现垃圾邮件的识别
Jun 28 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
关于php fread()使用技巧
2010/01/22 PHP
PHP程序漏洞产生的原因分析与防范方法说明
2014/03/06 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
一个符号插入器 中用到的js代码
2007/09/04 Javascript
javascript Discuz代码中的msn聊天小功能
2008/05/25 Javascript
jQuery弹出层插件简化版代码下载
2008/10/16 Javascript
js parsefloat parseint 转换函数
2010/01/21 Javascript
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
IE下使用jQuery重置iframe地址时内存泄露问题解决办法
2015/02/05 Javascript
javascript中Function类型详解
2015/04/28 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
使用jQuery判断浏览器滚动条位置的方法
2016/05/30 Javascript
JS在浏览器中解析Base64编码图像
2017/02/09 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
JS简单实现数组去重的方法分析
2017/10/14 Javascript
python解析文件示例
2014/01/23 Python
Python构建XML树结构的方法示例
2017/06/30 Python
Python实现翻转数组功能示例
2018/01/12 Python
简述Python2与Python3的不同点
2018/01/21 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
LookFantastic丹麦:英国美容护肤精品在线商城
2016/08/18 全球购物
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
我的长生果教学反思
2014/04/28 职场文书
奖学金个人总结
2015/03/04 职场文书
观看建国大业观后感
2015/06/01 职场文书
运动会800米赞词
2015/07/22 职场文书
公司安全管理制度范本
2015/08/05 职场文书
2015年度考核个人工作总结
2015/10/24 职场文书
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
2021/06/07 Python
零基础学java之带参数以及返回值的方法
2022/04/10 Java/Android
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang
讨论nginx location 顺序问题
2022/05/30 Servers