当前位置: 首页 > news >正文

【数据结构与算法】7_python版 _搜索

文章目录

  • 一、搜索
    • 1.1 二分法查找
    • 1.2 二分法查找的分析
    • 1.3 二分法查找的代码实现
    • 1.4 二分法查找的时间复杂度

一、搜索

搜索是在一个项目集合中找到一个特定项目的算法过程。搜索通常的答案是真的或假的,因为该项目是否存在。 搜索的几种常见方法:顺序查找、二分法查找、二叉树查找、哈希查找

1.1 二分法查找

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,使查找成功,或直到子表不存在为止,此时查找不成功。

1.2 二分法查找的分析

二分查找的操作对象首先是排序过之后的,紧接着才可以进行二分查找。

1、操作对象排序过之后

2、元素相邻排放,操作对象支持下标索引。(列表支持下标索引,也就是顺序表,链表不支持)

因此二分查找只能作用于顺序表,而且是有序的顺序表

1.3 二分法查找的代码实现

# 二分查找# 操作对象必须有序(即已经按从小到大排好顺序)# 最好描述和好写的是递归实现defbinary_search(alist,item):"""二分查找,递归的方式:产生新的列表"""n=len(alist)ifn>0:mid=n//2ifalist[mid]==item:returnTrueelifitem<alist[mid]:returnbinary_search(alist[:mid],item)else:returnbinary_search(alist[mid+1:],item)returnFalsedefbinary_search_2(alist,item):"""二分查找,非递归的方式:不产生新的列表,只是在原有的列表上进行操作"""n=len(alist)first,last=0,n-1whilefirst<=last:mid=(first+last)//2ifalist[mid]==item:returnTrueelifitem<alist[mid]:last=mid-1else:first=mid+1returnFalseif__name__=='__main__':li=[16,20,26,31,44,54,55,77,93]res=binary_search_2(li,16)print(res)# Trueprint(binary_search_2(li,100))# False

1.4 二分法查找的时间复杂度

  • 最优时间复杂度:O(1)
  • 最坏时间复杂度:O(logn)
http://www.jsqmd.com/news/495069/

相关文章:

  • 工程文件+文档中的电路设计细节及其子模块功能解析——带隙基准、温度保护电路等多功能防护的综合运用
  • 从像素到智能:图像处理与计算机视觉全景解析
  • 分析园林水景实用性,2026年南安万磊石业表现出色 - 工业品网
  • ROS2导入魔力元宝服务组模型
  • LeetCode 热题 100 -- 128、最长连续序列
  • 探寻黑龙江装修公司,鲨鱼速装售后有保障吗?怎么选择 - 工业品牌热点
  • MySQL 索引失效场景总结:面试必问的 10 种情况,你踩过几个?
  • OpenClaw 解决运行一些漏洞
  • 二氢视黄醛价格
  • 大模型Agent生态全景解析(非常详细),LLM MCP Skills技术逻辑从入门到精通,收藏这一篇就够了!
  • HTML、CSS、JavaScript与图片在网页构建中的关联与区别
  • B端拓客号码核验:困境剖析与技术破局路径氪迹科技法人股东号码核验系统
  • 小程序毕业设计-基于微信小程序的个人财务管理系统设计与实现
  • 亲测储能电源厂家,我的采购复盘
  • 2026年,银川装饰装修公司哪家好?业主实测本地top3自营团队,避坑指南+精准选择攻略 - 宁夏壹山网络
  • 循环神经网络的问题:梯度消失与梯度爆炸|Problems with RNNs: Vanishing and Exploding Gradients
  • 万字长文详解网络安全知识库:从零基础到入门必备指南
  • 北京上门回收红酒拉菲,京城亚南酒业,专业高价,上门便捷 - 品牌排行榜单
  • tg内容下载
  • Gemini3 AI辅助教学,轻松实现各种教学课件!
  • 【亲测好用】指标体系平台能力演示
  • 2026年鞍山有影响力的民事律师哪家强,专业分析 - 工业设备
  • SSH安装与配置步骤
  • 2026年上海财税机构推荐:“代理记账+注册公司” 一体化服务
  • NTU 提出 OrchMAS:动态多专家协同的科学推理多智能体框架
  • 2026年鞍山热门离婚律师推荐,专业处理离婚的律师排名揭晓 - myqiye
  • 【26年软考架构师】位示图经典困难计算题超详细解析(含避坑点)
  • 吐血整理!网络安全基础知识大全,一篇文章帮你建立完整知识体系
  • 中科院拒绝支付版面费的期刊名单!
  • 欧意下载okxz.run复制打开 最新地址分享(安卓苹果通用)