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基础教程之循环介绍
Aug 29 Python
探究Python的Tornado框架对子域名和泛域名的支持
May 02 Python
python爬取NUS-WIDE数据库图片
Oct 05 Python
Python函数定义及传参方式详解(4种)
Mar 18 Python
Python tkinter实现图片标注功能(完整代码)
Dec 08 Python
python3正则模块re的使用方法详解
Feb 11 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
Mar 10 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
Mar 12 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
Apr 22 Python
python3通过udp实现组播数据的发送和接收操作
May 05 Python
Python使用pickle进行序列化和反序列化的示例代码
Sep 22 Python
Python中常用的os操作汇总
Nov 05 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递归调用删除数组空值元素的方法
2015/04/28 PHP
php使用正则验证中文
2016/04/06 PHP
php metaphone()函数的定义和用法
2016/05/15 PHP
PHP基于IMAP收取邮件的方法示例
2017/08/07 PHP
TNC vs RR BO3 第一场 2.14
2021/03/10 DOTA
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
2009/02/18 Javascript
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
2014/09/26 NodeJs
javascript实现右侧弹出“分享到”窗口效果
2016/02/01 Javascript
详解小程序输入框闪烁及重影BUG解决方案
2018/08/31 Javascript
Puppet的一些技巧
2018/09/17 Javascript
微信小程序开发之路由切换页面重定向问题
2018/09/18 Javascript
Vue父子组件之间的通信实例详解
2018/09/28 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
Vue实现随机验证码功能
2020/12/29 Vue.js
使用python实现strcmp函数功能示例
2014/03/25 Python
python 字典(dict)按键和值排序
2016/06/28 Python
Python中str.format()详解
2017/03/12 Python
Python实现Linux中的du命令
2017/06/12 Python
Python中property函数用法实例分析
2018/06/04 Python
python基于K-means聚类算法的图像分割
2019/10/30 Python
python随机生成库faker库api实例详解
2019/11/28 Python
OpenCV+python实现实时目标检测功能
2020/06/24 Python
如何把python项目部署到linux服务器
2020/08/26 Python
Python实现EM算法实例代码
2020/10/04 Python
HTML5离线缓存Manifest是什么
2016/03/09 HTML / CSS
amazeui页面校验功能的实现代码
2020/08/24 HTML / CSS
纽约市的奢华内衣目的地:Anya Lust
2019/08/02 全球购物
性能测试工程师的面试题
2015/02/20 面试题
体育专业大学生职业生涯规划范文:打造自己的运动帝国
2014/09/12 职场文书
2014年政务公开工作总结
2014/12/09 职场文书
趵突泉导游词
2015/02/03 职场文书
2015年幼儿园个人工作总结
2015/04/25 职场文书
歌舞青春观后感
2015/06/10 职场文书
部门主管竞聘书
2015/09/15 职场文书
Python万能模板案例之matplotlib绘制直方图的基本配置
2022/04/13 Python