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的id()函数解密过程
Dec 25 Python
Python中实现的RC4算法
Feb 14 Python
基于Python如何使用AIML搭建聊天机器人
Jan 27 Python
python数据结构链表之单向链表(实例讲解)
Jul 25 Python
Python解析命令行读取参数--argparse模块使用方法
Jan 23 Python
Linux系统(CentOS)下python2.7.10安装
Sep 26 Python
python读取与处理netcdf数据方式
Feb 14 Python
基于python图像处理API的使用示例
Apr 03 Python
Python3爬虫里关于Splash负载均衡配置详解
Jul 10 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
Jul 30 Python
python爬取股票最新数据并用excel绘制树状图的示例
Mar 01 Python
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
May 17 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调用三种数据库的方法(2)
2006/10/09 PHP
浅析php中如何在有限的内存中读取大文件
2013/07/02 PHP
php CI框架插入一条或多条sql记录示例
2014/07/29 PHP
php 策略模式原理与应用深入理解
2019/09/25 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
2019/10/24 PHP
js+CSS 图片等比缩小并垂直居中实现代码
2008/12/01 Javascript
判断控件是否已加载完成的代码
2010/02/24 Javascript
js弹出的对话窗口永远保持居中显示
2012/12/15 Javascript
iframe的父子窗口之间的对象相互调用基本用法
2013/09/03 Javascript
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
2015/10/27 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
2016/02/17 Javascript
ES6的新特性概览
2016/03/10 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
jQuery实现的自定义滚动条实例详解
2016/09/20 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
2017/02/03 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
2017/06/13 Javascript
nodejs 生成和导出 word的实例代码
2018/07/31 NodeJs
element-ui 的el-button组件中添加自定义颜色和图标的实现方法
2018/10/26 Javascript
细述Javascript的加法运算符的具体使用
2019/10/18 Javascript
Vue实现手机号、验证码登录(60s禁用倒计时)
2020/12/19 Vue.js
Python警察与小偷的实现之一客户端与服务端通信实例
2014/10/09 Python
python库lxml在linux和WIN系统下的安装
2018/06/24 Python
python3.7 sys模块的具体使用
2019/07/22 Python
用Python实现校园通知更新提醒功能
2019/11/23 Python
基于 HTML5 Canvas实现 的交互式地铁线路图
2018/03/05 HTML / CSS
印度最大的酒店品牌网络:OYO Rooms
2016/07/24 全球购物
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
什么是URL
2015/12/13 面试题
乡村文明行动实施方案
2014/03/29 职场文书
就业意向协议书
2015/01/29 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书
2015年入党积极分子培养考察意见
2015/08/12 职场文书
创业计划书之家政服务
2019/09/18 职场文书