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 07 Python
python3.5使用tkinter制作记事本
Jun 20 Python
Python实现冒泡排序的简单应用示例
Dec 11 Python
numpy自动生成数组详解
Dec 15 Python
使用Python读取安卓手机的屏幕分辨率方法
Mar 31 Python
Python利用正则表达式实现计算器算法思路解析
Apr 25 Python
对python requests发送json格式数据的实例详解
Dec 19 Python
Python3按一定数据位数格式处理bin文件的方法
Jan 24 Python
Django中create和save方法的不同
Aug 13 Python
Python logging模块原理解析及应用
Aug 13 Python
Python random模块的使用示例
Oct 10 Python
深度学习小工程练习之垃圾分类详解
Apr 14 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
SONY ICF-SW7600的电路分析
2021/03/02 无线电
PHP文本操作类
2006/11/25 PHP
phpfans留言版用到的数据操作类和分页类
2007/01/04 PHP
改变Apache端口等配置修改方法
2008/06/05 PHP
PHP is_subclass_of函数的一个BUG和解决方法
2014/06/01 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
Javascript 事件流和事件绑定
2009/07/16 Javascript
面向对象的编程思想在javascript中的运用上部
2009/11/20 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
基于Javascript倒计时效果
2016/12/22 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
Vue.js的模板语法详解
2020/02/16 Javascript
解决ant Design中this.props.form.validateFields未执行的问题
2020/10/27 Javascript
一篇文章看懂JavaScript中的回调
2021/01/05 Javascript
设置python3为默认python的方法
2018/10/31 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
python 直接赋值和copy的区别详解
2019/08/07 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
HTML5边玩边学(1)画布实现方法
2010/09/21 HTML / CSS
Notino希腊:购买香水和美容产品
2019/07/25 全球购物
MySQL面试题
2014/01/12 面试题
自我鉴定 电子商务专业
2014/01/30 职场文书
公司委托书范本5篇
2014/09/20 职场文书
工商局领导班子存在的问题整改措施思想汇报
2014/10/05 职场文书
2014年酒店年度工作总结
2014/12/10 职场文书
岁月神偷观后感
2015/06/11 职场文书
国庆放假通知怎么写
2015/07/30 职场文书
创业计划书之干洗店
2019/09/10 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python
Pytorch 统计模型参数量的操作 param.numel()
2021/05/13 Python
一条 SQL 语句执行过程
2022/03/17 MySQL
Python requests用法和django后台处理详解
2022/03/19 Python