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读写二进制文件的方法
May 09 Python
Python实现字符串与数组相互转换功能示例
Sep 22 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
Nov 29 Python
python实现隐马尔科夫模型HMM
Mar 25 Python
Python3多线程操作简单示例
May 22 Python
pandas求两个表格不相交的集合方法
Dec 08 Python
Python基于plotly模块实现的画图操作示例
Jan 23 Python
python 利用文件锁单例执行脚本的方法
Feb 19 Python
PyQt5 实现给窗口设置背景图片的方法
Jun 13 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
Jun 23 Python
Python远程方法调用实现过程解析
Jul 28 Python
Python中requests做接口测试的方法
May 30 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 SRF-22W(33W)的电路分析和维修案例
2021/03/02 无线电
PHP 第二节 数据类型之数组
2012/04/28 PHP
PHP获取当前页面完整URL的实现代码
2013/06/10 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
2006/09/22 Javascript
动态添加js事件实现代码
2009/03/12 Javascript
Javascript 日期对象Date扩展方法
2009/05/30 Javascript
javascript 特性检测并非浏览器检测
2010/01/15 Javascript
用XMLDOM和ADODB.Stream实现base64编码解码实现代码
2010/11/28 Javascript
JQuery 操作/获取table具体代码
2013/06/13 Javascript
javascript日期对象格式化为字符串的实现方法
2014/01/14 Javascript
jquery删除指定的html标签并保留标签内文本内容的方法
2014/04/02 Javascript
JavaScript数据类型判定的总结笔记
2015/07/31 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
2015/11/03 Javascript
jQuery调用Webservice传递json数组的方法
2016/08/06 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
BootStrap 表单控件之单选按钮水平排列
2017/05/23 Javascript
引入JavaScript时alert弹出框显示中文乱码问题
2017/09/16 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
使用vue-infinite-scroll实现无限滚动效果
2018/06/22 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
Vue实现简单分页器
2018/12/29 Javascript
python里将list中元素依次向前移动一位
2014/09/12 Python
详解Python编程中包的概念与管理
2015/10/16 Python
Python多进程分块读取超大文件的方法
2016/04/13 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
2019/01/26 Python
python 实现return返回多个值
2019/11/19 Python
Python爬虫之Spider类用法简单介绍
2020/08/04 Python
美国球鞋寄卖网站:Stadium Goods
2018/05/09 全球购物
北京天润融通.net面试题笔试题
2012/02/20 面试题
Linux内核产生并发的原因
2016/11/08 面试题
JVM是一个编译程序还是解释程序
2012/09/11 面试题
中专自我鉴定
2014/02/05 职场文书
通知格式
2015/04/27 职场文书
大学生社会实践感想
2015/08/11 职场文书