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分割文件的常用方法
Nov 01 Python
python通过自定义isnumber函数判断字符串是否为数字的方法
Apr 23 Python
Python入门_浅谈数据结构的4种基本类型
May 16 Python
Python实现的手机号归属地相关信息查询功能示例
Jun 08 Python
Python实现动态添加属性和方法操作示例
Jul 25 Python
详解Appium+Python之生成html测试报告
Jan 04 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
Jun 03 Python
python3+PyQt5 数据库编程--增删改实例
Jun 17 Python
解决torch.autograd.backward中的参数问题
Jan 07 Python
Pytorch mask_select 函数的用法详解
Feb 18 Python
如何利用python之wxpy模块玩转微信
Aug 17 Python
python 递归相关知识总结
Mar 03 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
几种显示数据的方法的比较
2006/10/09 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
2015/11/17 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
使用prototype.js进行异步操作
2007/02/07 Javascript
浅析jQuery1.8的几个小变化
2013/12/10 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
JavaScript中的toDateString()方法使用详解
2015/06/12 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
详细解读JavaScript编程中的Promise使用
2015/07/27 Javascript
jquery easyui DataGrid简单示例
2017/01/23 Javascript
使用bootstrap插件实现模态框效果
2017/05/10 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
最简单的vue消息提示全局组件的方法
2019/06/16 Javascript
Vue实现PC端靠边悬浮球的代码
2020/05/09 Javascript
详解JavaScript作用域 闭包
2020/07/29 Javascript
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
python 中文乱码问题深入分析
2011/03/13 Python
Python封装shell命令实例分析
2015/05/05 Python
Python中operator模块的操作符使用示例总结
2016/06/28 Python
python使用turtle库绘制时钟
2020/03/25 Python
pytorch 准备、训练和测试自己的图片数据的方法
2020/01/10 Python
Python全面分析系统的时域特性和频率域特性
2020/02/26 Python
用python进行视频剪辑
2020/11/02 Python
YSL圣罗兰美妆美国官网:Yves Saint Lauret US
2016/11/21 全球购物
BASIC HOUSE官方旗舰店:韩国著名的服装品牌
2018/09/27 全球购物
马来西亚排名第一的宠物用品店:Pets Wonderland
2020/04/16 全球购物
敬老文明号事迹材料
2014/01/16 职场文书
工程管理英文求职信
2014/03/18 职场文书
2014教师教育实践活动对照检查材料思想汇报
2014/09/21 职场文书
留学推荐信英文范文
2015/03/26 职场文书
2016年父亲节寄语
2015/12/04 职场文书
导游词之河北邯郸
2019/09/12 职场文书
python中的装饰器该如何使用
2021/06/18 Python
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript