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实现的批量下载RFC文档
Mar 10 Python
完美解决python遍历删除字典里值为空的元素报错问题
Sep 11 Python
[原创]使用豆瓣提供的国内pypi源
Jul 02 Python
python编程线性回归代码示例
Dec 07 Python
对Python模块导入时全局变量__all__的作用详解
Jan 11 Python
Python3.5装饰器典型案例分析
Apr 30 Python
python画蝴蝶曲线图的实例
Nov 21 Python
python 两个一样的字符串用==结果为false问题的解决
Mar 12 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
Jun 06 Python
pandas DataFrame运算的实现
Jun 14 Python
Pyqt5将多个类组合在一个界面显示的完整示例
Sep 04 Python
Python 如何利用ffmpeg 处理视频素材
Nov 27 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调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
2013/07/03 PHP
基于php的微信公众平台开发入门实例
2015/04/15 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
2016/03/23 PHP
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
Jquery 一次处理多个ajax请求的代码
2011/09/02 Javascript
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
js读取json的两种常用方法示例介绍
2014/10/19 Javascript
node.js操作mongodb学习小结
2015/04/25 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
js中的面向对象入门
2017/03/06 Javascript
php 修改密码实现代码
2017/05/24 Javascript
JavaScript注册时密码强度校验代码
2017/06/30 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
2018/01/16 Javascript
vue 中swiper的使用教程
2018/05/22 Javascript
Jquery和CSS实现选择框重置按钮功能
2018/11/08 jQuery
《Python学习手册》学习总结
2018/01/17 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
2020/04/14 Python
使用pytorch 筛选出一定范围的值
2020/06/28 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
HTML5 window/iframe跨域传递消息 API介绍
2013/08/26 HTML / CSS
英国网络托管和域名领导者:Web Hosting UK
2017/10/15 全球购物
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
应届大学生自荐信格式
2013/09/21 职场文书
金融专业大学生职业生涯规划范文
2014/01/16 职场文书
小学英语教学反思
2014/01/30 职场文书
股份合作协议书范本
2014/04/14 职场文书
5s推行计划书
2014/05/06 职场文书
会展策划与管理专业求职信
2014/06/09 职场文书
农村门前三包责任书
2014/07/25 职场文书
关于晚自习早退的检讨书
2014/09/13 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书
优质服务心得体会(共4篇)
2016/01/22 职场文书
小公司融资,商业计划书的8切记
2019/07/15 职场文书
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL