Python实现在某个数组中查找一个值的算法示例
2018-06-27 09:27
1031 查看
第一步:随机出来一个数组的下标
第二步:判断下标对应的值是否等于被查找的值,是的话终止,已找到,否的话转第三步。
第三步:判断是否随机完数组的所有下标,是的话终止,没找到,否的话转第一步。
代码如下:
#本程序的功能是在字典中查找存在某个值 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实现)
- 一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 用C++/lua/python/bash的四重实现(7)习题2.8 随机数组的三种生成算法
- python实现:使用二分查找,查找有序数组中,一个数字最后出现的下标
- 【算法】输入一个已经按升序排过的数组和数字,在数组中查找两个数字,使得它们的和正好是输入那个数字。
- 实现了一个压缩算法,在数据高度压缩的前提下,还可以快速查找 key
- 用 公平的算法 把一个数组打乱(两种实现方式)
- C#中定义数组和一个简单排序算法实现。
- 在一个旋转过的有序数组上实现二分查找 收藏
- 整型数组处理算法(十三)请实现一个函数:凑14。[风林火山]
- 一个简单的实现找出数组中一个数字出现次数最多的数字的算法
- 一个简单的算法---实现找出数组中一个数字出现次数最多的数字
- 整型数组处理算法(十二)请实现一个函数:最长顺子。[风林火山]
- 怎样编写一个程序,把一个有序整数数组放到二叉树中? 编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?
- 整型数组处理算法(十一)请实现一个函数:线段重叠。[风林火山]
- 用 公平的算法 把一个数组打乱(两种实现方式)
- 算法题27 在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数。
- 实现了一个压缩算法,在数据高度压缩的前提下,还可以快速查找 key
- Map接口及其重要实现类的方法总结:从HashMap中放入,查找,删除一个对象,并将全部value放入到一个数组中;获得HashMap的全部数据
- 每天学习一算法系列(14) (输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字)
- 给一个字符串S和一个字符串数组T(T中的字符串要比S短许多),设计一个算法, 在字符串S中查找T中的字符串。