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的web框架中配置app的教程
Apr 30 Python
Pycharm编辑器技巧之自动导入模块详解
Jul 18 Python
Python实现霍夫圆和椭圆变换代码详解
Jan 12 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
May 19 Python
Python从Excel中读取日期一列的方法
Nov 28 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
Apr 11 Python
python基于paramiko将文件上传到服务器代码实现
Jul 08 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
Jul 12 Python
Python编写打字训练小程序
Sep 26 Python
python 读取.nii格式图像实例
Jul 01 Python
python如何修改文件时间属性
Feb 05 Python
Python必备技巧之函数的使用详解
Apr 04 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 htmlspecialchars加强版
2010/02/16 PHP
PHP整合七牛实现上传文件
2015/07/03 PHP
php把数组值转换成键的方法
2015/07/13 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
2016/10/09 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
jquery ajax执行后台方法
2010/03/18 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
浅谈JavaScript之事件绑定
2013/07/08 Javascript
Node.js(安装,启动,测试)
2014/06/09 Javascript
node.js开机自启动脚本文件
2014/12/24 Javascript
深入学习JavaScript中的Rest参数和参数默认值
2015/07/28 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
2016/12/19 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
Linux Centos7.2下安装nodejs&npm配置全局路径的教程
2018/05/15 NodeJs
原生JS实现的放大镜特效示例【测试可用】
2018/12/08 Javascript
vue中轮训器的使用
2019/01/27 Javascript
利用Promise自定义一个GET请求的函数示例代码
2019/03/20 Javascript
jQuery实现简单聊天室
2020/02/08 jQuery
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
python读取注册表中值的方法
2013/04/08 Python
用Python进行一些简单的自然语言处理的教程
2015/03/31 Python
详解常用查找数据结构及算法(Python实现)
2016/12/09 Python
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
selenium+python设置爬虫代理IP的方法
2018/11/29 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
pygame实现俄罗斯方块游戏(基础篇2)
2019/10/29 Python
Python关键字及可变参数*args,**kw原理解析
2020/04/04 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
python os模块在系统管理中的应用
2020/06/22 Python
艺术用品:Arteza
2018/11/25 全球购物
为女性购买传统的印度服装和婚纱:Kalkifashion
2019/07/22 全球购物
保护野生动物倡议书
2014/05/16 职场文书
大学生党员承诺书
2014/05/20 职场文书
2015年信息中心工作总结
2015/05/25 职场文书