news 2026/8/7 10:54:54

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【数据结构与算法】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)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/7 10:54:20

安卓安全模式:排查手机问题的实用利器

安卓安全模式&#xff1a;诊断应用问题的关键工具当安卓手机出现崩溃、死机或运行异常等情况时&#xff0c;第三方应用往往是常见的“罪魁祸首”。安卓系统的“安全模式”为用户提供了一个有效的故障排除工具。它会临时禁用所有第三方应用&#xff0c;仅运行安卓核心系统和预装…

作者头像 李华
网站建设 2026/7/14 15:20:22

巧妙打探相亲对象经济实力的3个方法

相亲必看&#xff01;3招摸清对方经济实力相亲时&#xff0c;谁不好奇对方的经济实力&#xff1f;可直接问“你月薪多少”“有房有车吗”&#xff0c;大概率会把天聊死&#xff0c;还显得自己特别物质。我朋友小A上周就栽了这个跟头&#xff0c;刚坐下半小时就问收入&#xff0…

作者头像 李华
网站建设 2026/7/14 15:20:23

网安 35 岁危机真相|未来发展怎么样?工程师能干到退休吗?

关于35岁中年危机这个问题&#xff0c;我想说&#xff0c;在网安行业里&#xff0c;这根本就不是个事儿&#xff01;&#xff01;与传统的IT行业不同&#xff0c;网安行业更加注重实战经验和技能深度&#xff0c;而不是单一的年龄因素。随着经验的积累&#xff0c;网络安全工程…

作者头像 李华
网站建设 2026/7/14 15:20:24

学习记录贴-day12

今天又是跑了几个实验&#xff0c;加深了对prvaccountant和momentaccountant的差别&#xff0c;然后看了一些基准实验的指标。明天对着这些基准实验看看哪里还有可改进的点。

作者头像 李华
网站建设 2026/7/14 15:20:22

A Theory of Response Sampling in LLMs: Part Descriptive and Part Prescriptive

ACL 2025 Best Paper Award摘要大语言模型&#xff08;LLMs&#xff09;正越来越多地被应用于自主决策场景&#xff0c;在这类场景中&#xff0c;模型需要从庞大的行动空间中选取决策选项。然而&#xff0c;主导这一采样过程的启发式规则&#xff0c;目前尚未得到充分的研究。本…

作者头像 李华
网站建设 2026/7/14 15:20:24

在线监测,让汽轮机振动故障无处遁形

汽轮机振动是反映其运行状态的核心指标&#xff0c;直接关系到机组的安全稳定。实际运行中&#xff0c;转子质量不平衡与轴系不对中是最常见的振动诱因。然而&#xff0c;这两类故障往往“潜伏”较深&#xff1a;不平衡随运行时间缓慢发展&#xff0c;不对中则隐藏于振动特征之…

作者头像 李华