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简单实现控制电脑的方法
Jan 22 Python
Python中列表与元组的乘法操作示例
Feb 10 Python
Python发送邮件测试报告操作实例详解
Dec 08 Python
如何使用Flask-Migrate拓展数据库表结构
Jul 24 Python
Python range、enumerate和zip函数用法详解
Sep 11 Python
python修改FTP服务器上的文件名
Sep 11 Python
使用pyqt 实现重复打开多个相同界面
Dec 13 Python
Python sqlite3查询操作过程解析
Feb 20 Python
30行Python代码实现高分辨率图像导航的方法
May 22 Python
Python制作简单的剪刀石头布游戏
Dec 10 Python
Python干货实战之八音符酱小游戏全过程详解
Oct 24 Python
python 中的jieba分词库
Nov 23 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 mysql Errcode: 28 终极解决方法
2009/07/01 PHP
用Zend Encode编写开发PHP程序
2010/02/21 PHP
PHP5中使用DOM控制XML实现代码
2010/05/07 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
2019/05/09 PHP
js三种排序算法分享
2012/08/16 Javascript
让js弹出窗口居前显示的实现方法
2013/07/10 Javascript
JavaScript中的正则表达式简明总结
2014/04/04 Javascript
Javascript异步编程模型Promise模式详细介绍
2014/05/08 Javascript
javascript实现相同事件名称,不同命名空间的调用方法
2015/06/26 Javascript
jquery获取多个checkbox的值异步提交给php
2015/07/07 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
2016/10/30 Javascript
javascript基础知识之html5轮播图实例讲解(44)
2017/02/17 Javascript
easy ui datagrid 从编辑框中获取值的方法
2017/02/22 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
2017/05/18 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
node前端模板引擎Jade之标签的基本写法
2018/05/11 Javascript
javascript防抖函数debounce详解
2019/06/11 Javascript
javascript的惯性运动实现代码实例
2019/09/07 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
2020/07/22 Javascript
Python脚本实现代码行数统计代码分享
2015/03/10 Python
python同时给两个收件人发送邮件的方法
2015/04/30 Python
Django的数据模型访问多对多键值的方法
2015/07/21 Python
Python环境下安装使用异步任务队列包Celery的基础教程
2016/05/07 Python
Python+selenium 获取一组元素属性值的实例
2018/06/22 Python
python清除函数占用的内存方法
2018/06/25 Python
对Python信号处理模块signal详解
2019/01/09 Python
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
Hush Puppies澳大利亚官网:舒适的男女休闲和正装鞋
2019/08/24 全球购物
同事打架检讨书
2014/02/04 职场文书
公司演讲稿开场白
2014/08/25 职场文书
2015年质量管理工作总结范文
2015/05/18 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书