Python实现搜索算法的实例代码


Posted in Python onJanuary 02, 2020

将数据存储在不同的数据结构中时,搜索是非常基本的必需条件。最简单的方法是遍历数据结构中的每个元素,并将其与您正在搜索的值进行匹配。这就是所谓的线性搜索。它效率低下,很少使用,但为它创建一个程序给出了我们如何实现一些高级搜索算法的想法。

线性搜索

在这种类型的搜索中,逐个搜索所有值。每个值都会被检查,如果找到匹配项,那么返回该特定值,否则搜索将继续到数据结构的末尾。代码如下:

[Python] 纯文本查看

def linear_search(data, search_for):
 """线性搜索"""
 search_at = 0
 search_res = False
 while search_at < len(data) and search_res is False:
  if data[search_at] == search_for:
   search_res = True
  else:
   search_at += 1
 return search_res
lis = [5, 10, 7, 35, 12, 26, 41]
print(linear_search(lis, 12))
print(linear_search(lis, 6))

插值搜索

该搜索算法适用于所需值的探测位置。为了使该算法正常工作,数据收集应该以排序形式并平均分布。最初,探针位置是集合中最大项目的位置。如果匹配发生,则返回项目的索引。如果中间项目大于项目,则再次在中间项目右侧的子数组中计算探针位置。否则,该项目将在中间项目左侧的子数组中搜索。这个过程在子数组上继续,直到子数组的大小减小到零。代码如下:

[Python] 纯文本查看 

def insert_search(data,x):
 """插值搜索"""
 idx0 = 0
 idxn = (len(data) - 1)
 while idx0 <= idxn and x >= data[idx0] and x <= data[idxn]:
  mid = idx0 +int(((float(idxn - idx0)/(data[idxn] - data[idx0])) * (x - data[idx0])))
  if data[mid] == x:
   return "在下标为"+str(mid) + "的位置找到了" + str(x)
  if data[mid] < x:
   idx0 = mid + 1
 return "没有搜索到" + str(x)
 
 
lis = [2, 6, 11, 19, 27, 31, 45, 121]
print(insert_search(lis, 31))
print(insert_search(lis, 3))

总结

以上所述是小编给大家介绍的Python实现搜索算法的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
简单的python后台管理程序
Apr 13 Python
Python实现字符串与数组相互转换功能示例
Sep 22 Python
python pandas 对时间序列文件处理的实例
Jun 22 Python
python 使用sys.stdin和fileinput读入标准输入的方法
Oct 17 Python
Python编程实现tail-n查看日志文件的方法
Jul 08 Python
python 判断字符串中是否含有汉字或非汉字的实例
Jul 15 Python
Django如何实现网站注册用户邮箱验证功能
Aug 14 Python
python绘制随机网络图形示例
Nov 21 Python
Python编程快速上手——Excel表格创建乘法表案例分析
Feb 28 Python
PyQt5事件处理之定时在控件上显示信息的代码
Mar 25 Python
Python3读取和写入excel表格数据的示例代码
Jun 09 Python
Python中Pyspider爬虫框架的基本使用详解
Jan 27 Python
python 实现从高分辨图像上抠取图像块
Jan 02 #Python
python base64库给用户名或密码加密的流程
Jan 02 #Python
python文件处理fileinput使用方法详解
Jan 02 #Python
linux 下python多线程递归复制文件夹及文件夹中的文件
Jan 02 #Python
Pytorch的mean和std调查实例
Jan 02 #Python
pytorch 图像预处理之减去均值,除以方差的实例
Jan 02 #Python
Linux下升级安装python3.8并配置pip及yum的教程
Jan 02 #Python
You might like
使用PHP维护文件系统
2006/10/09 PHP
PHP Curl多线程原理实例详解
2013/11/06 PHP
php查找指定目录下指定大小文件的方法
2014/11/28 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
2016/11/20 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
2020/06/05 PHP
IE8 原生JSON支持
2009/04/13 Javascript
A标签中通过href和onclick传递的this对象实现思路
2013/04/19 Javascript
中止javascript执行的方法
2014/02/14 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
jQuery实现简单的点赞效果
2020/05/29 Javascript
jquery实现图片列表鼠标移入微动
2016/12/01 Javascript
详解tween.js 中文使用指南
2018/01/05 Javascript
vue刷新页面时去闪烁提升用户体验效果的实现方法
2018/12/10 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
使用jquery-easyui的布局layout写后台管理页面的代码详解
2019/06/19 jQuery
JavaScript对象原型链原理详解
2020/02/05 Javascript
Python的time模块中的常用方法整理
2015/06/18 Python
Python实现统计代码行的方法分析
2017/07/12 Python
Python安装pycurl失败的解决方法
2018/10/15 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
使用python实现哈希表、字典、集合操作
2019/12/22 Python
keras绘制acc和loss曲线图实例
2020/06/15 Python
python 如何使用find和find_all爬虫、找文本的实现
2020/10/16 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
2021/02/07 Python
印度最好的在线药品订购网站:PharmEasy
2018/11/30 全球购物
main 函数执行以前,还会执行什么代码
2013/04/17 面试题
一道输出判断型Java面试题
2014/10/01 面试题
受欢迎的大学生自我评价
2013/12/05 职场文书
食品行业求职人的自我评价
2014/01/19 职场文书
市场专员岗位职责
2014/02/14 职场文书
会计员岗位职责
2014/03/15 职场文书
体育教师求职信
2014/05/24 职场文书
红领巾广播站广播稿
2015/08/19 职场文书
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android
零基础学java之循环语句的使用
2022/04/10 Java/Android