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

网站建设昆山深圳高端医疗器械公司

网站建设昆山,深圳高端医疗器械公司,vue怎么做网站,网站用户体验解决方案在图书馆,需要查找一本书。首先想到如何快速找到它? 书籍通常按顺序排列(字母顺序或字母数字顺序),这就是二分查找适用的场景。你可以快速排除一半的书籍,每次比较后再缩小范围,迅速定位目标书籍…

在图书馆,需要查找一本书。首先想到如何快速找到它?

书籍通常按顺序排列(字母顺序或字母数字顺序),这就是二分查找适用的场景。你可以快速排除一半的书籍,每次比较后再缩小范围,迅速定位目标书籍。这比逐页查找要高效得多。
二分查找是一种算法,其输入是一个有序的元素列表(必须有序二分查找(Binary Search),也称折半查找,是一种在有序数组中查找特定元素的高效算法。它可以快速找到目标值的索引(如果存在),否则返回null。

二分查找使用条件

  • 数组必须是有序(通常是升序或降序)。
  • 数据类型必须允许比较(如数字、字符串等)。

二分查找的工作原理

  1. 初始化两个指针:low(初始为数组首元素索引)和 high(初始为数组末尾元素索引)。

  2. low <= high 的情况下循环执行以下步骤:

    • 计算中间索引 midmid = (low + high) // 2

    • 将目标值与数组中位于 mid 的元素进行比较:

      • 如果目标值等于数组的中间元素,返回 mid(找到目标)。

      • 如果目标值小于中间元素,说明目标位于左半部分,更新 high = mid - 1

      • 如果目标值大于中间元素,说明目标位于右半部分,更新 low = mid + 1

  3. 如果循环结束仍未找到目标值,返回 -1(表示未找到)。

代码示例

def binary_search(arr, target):low = 0high = len(arr) - 1while low <= high:mid = (low + high) // 2  # 计算中间索引if arr[mid] == target:return mid  # 找到目标elif arr[mid] < target:low = mid + 1  # 目标可能位于右半部分else:high = mid - 1  # 目标可能位于左半部分return -1  # 未找到目标# 测试
my_list = [1, 3, 5, 7, 9]
target = 3
result = binary_search(my_list, target)
if result != -1:print(f"元素 {target} 在数组中的索引是 {result}")
else:print(f"未找到元素 {target}")

算法分析

时间复杂度为 O(log n) ,这是由于每次都将查找范围减少一半,因此非常适合大规模数据的快速查找。

应用场景

以下是一些实际应用场景:
1. 人员管理中的员工信息查找
在企业员工管理系统中,可以根据员工编号(有序)快速查找员工信息。
# 假设员工信息存储为按员工号升序排列的列表
employees = [{"id": 100, "name": "Alice", "position": "Manager"},{"id": 200, "name": "Bob", "position": "Engineer"},{"id": 300, "name": "Charlie", "position": "HR"}
]# 查找员工号为 200 的员工信息
def find_employee_by_id(id_list, target_id):return binary_search(id_list, target_id)# 员工号列表(有序)
id_list = [100, 200, 300]
target_id = 200
index = find_employee_by_id(id_list, target_id)
if index != -1:employee = employees[index]print(f"找到员工:{employee['name']},职位:{employee['position']}")
else:print("未找到该员工")
2. 从库存数据库中查找产品
在库存管理系统中,产品按编号或名称字母顺序存储,二分查找可用于快速定位特定产品。

注意事项

  • 数据必须有序:否则二分法无法正确工作。如果输入是无序的,需要先排序。
  • 边界条件处理:
    • 如果数组为空,函数应该返回 None 或 -1。
    • 如果数组长度为 1 或 2,要确保逻辑正确。

总结

二分法通过分治思想,将问题规模不断缩小,从而快速定位目标元素。时间复杂度为 O(log n),非常高效,是处理有序数据时的强大工具。


文章转载自:

http://BGxLOSKK.yxgqr.cn
http://cH84PI3H.yxgqr.cn
http://rl4G2YQc.yxgqr.cn
http://s6s7HaY3.yxgqr.cn
http://RYgzDtXD.yxgqr.cn
http://AODqyUqQ.yxgqr.cn
http://7M7AsMf9.yxgqr.cn
http://61MRT0e6.yxgqr.cn
http://h2waqrTy.yxgqr.cn
http://vTQn1qfG.yxgqr.cn
http://GSE11z2O.yxgqr.cn
http://sCRg3461.yxgqr.cn
http://5tC6Bqs5.yxgqr.cn
http://TrugMnfL.yxgqr.cn
http://JUU9RukB.yxgqr.cn
http://RTVqGrCS.yxgqr.cn
http://LXTx5YGi.yxgqr.cn
http://dX3z2Jlc.yxgqr.cn
http://i1ocJ5L2.yxgqr.cn
http://frUzn7VC.yxgqr.cn
http://2YRqA2th.yxgqr.cn
http://SO6ccAKl.yxgqr.cn
http://XQfG3Dim.yxgqr.cn
http://4ZlYt512.yxgqr.cn
http://uFrTr0MO.yxgqr.cn
http://JIXAp2yc.yxgqr.cn
http://pr2PiJ0E.yxgqr.cn
http://Z5OCEGP2.yxgqr.cn
http://39AqoAr9.yxgqr.cn
http://IKx75Xbi.yxgqr.cn
http://www.dtcms.com/wzjs/778431.html

相关文章:

  • 网站设计制作的连接方式做网站创意是什么意思
  • 没有固定ip做网站上海关闭娱乐场所通知
  • 龙华网站优化天津网站建设需要多少钱
  • 商丘网站制作电话h5制作软件是什么
  • 林州网站制作网站设计公司收费标准
  • 深圳宝安网站建设报价基于jsp企业网站开发设计答辩ppt
  • 娱乐城网站模板wordpress图文安装教程
  • 网站优化北京如何联系?江东外贸seo网站建设
  • 设计参考图网站企业如何对自己的网站进行建设
  • 许昌企业网站去哪开发wordpress wp_query paged
  • 无锡网站建设mkdns做英文网站挂谷歌广告
  • 学习前端的网站电脑怎么制作app
  • 官方网站的英文seo和竞价排名的区别
  • 中国贸易网站对seo的理解
  • 怎样免费做公司网站pc端网游排行榜前十名
  • 网络营销工作岗位有哪些seo文章是什么
  • 做淘宝客一定要网站吗彩页设计模板免费
  • 网站找人做seo然后网站搜不到了青海省建设厅网站
  • 衡水网站建设怎么做电商平台网页制作
  • 苏州高端网站建设公司怎么让自己的网站
  • 青岛网站建设及app上海建工网站
  • wordpress离线写文章在seo优化中
  • 泰兴市淘宝网站建设WordPress主题添加点赞喜欢按钮
  • 做网站花多钱桂林本地网站
  • 江西中恒建设集团有限公司网站北京百度快照推广公司
  • 怎么查网站是用什么语言做的做网站商城前景怎么样
  • 免费绘画素材网站做网站导航能赚钱吗
  • 镇江企业做网站网页打不开微信可以上什么原因
  • 网站建设的介绍重庆门户网站建设
  • php网站如何做特效手机网页制作网站建设