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

第二次算法实践作业

输入:数组A,查找范围[left, right],目标排名k

划分阶段:

选择A[left]作为基准元素pivot

对A[left...right]进行划分,使得:

左边所有元素 ≤ pivot

右边所有元素 ≥ pivot

返回基准元素的最终位置pos

计算排名:

计算基准元素在当前子数组中的排名:currentRank = pos - left + 1

分治决策:

情况1:如果currentRank = k

基准元素就是第k小的元素,返回A[pos]

情况2:如果currentRank > k
第k小的元素在左半部分

在A[left...pos-1]中递归查找第k小的元素

情况3:如果currentRank < k

第k小的元素在右半部分

在A[pos+1...right]中递归查找第(k - currentRank)小的元素

最好情况时间复杂度:O(n)
发生条件:

每次划分都能将数组均匀分成两半

或者第一次划分就找到了第k小的元素
最坏情况时间复杂度:O(n²)
发生条件:

每次划分都极度不平衡

例如:数组已排序且总是选择最小/最大元素作为基准

或者第k个元素总是在最大的那个分区中
体会和思考:分治法将复杂问题划分成多个子问题,将复杂问题简单化,针对子问题可以专门优化

好文要顶 关注我 收藏该文 微信分享

http://www.jsqmd.com/news/28311/

相关文章:

  • 致成熟的Java团队:AI浪潮中,无需换栈,只需“增量升级”
  • 统计表类图形的最大面积
  • 一对一视频源码,提高可扩展性的常用设计模式 - 云豹科技
  • 20251101 之所思 - 人生如梦
  • 深度学习基础理论————常见评价指标以及Loss Function - Big-Yellow
  • 模型量化操作————GPTQ和AWQ量化 - Big-Yellow
  • CSP-S前集训总结
  • 在AI技术快速实现创意的时代,挖掘用户真实需求成为关键突破点——某知名舆情分析系统需求洞察
  • 最短路模板
  • 时序数据库-InfluxDB - LLj
  • 2025年质量好的航空充气密封圈厂家最新推荐排行榜
  • 2025年质量好的非开挖电力管用户好评厂家排行
  • 2025年口碑好的酚醛胶行业内口碑厂家排行榜
  • 基于Java+Springboot+Vue开发的大学生反诈视频宣传系统源码+运行步骤
  • Docker 部署 openEuler 教程及常见问题解决
  • 图中连通区域集合的获取
  • 2025年评价高的高铁桥梁垫块厂家最新权威推荐排行榜
  • 2025年专业的电加热管厂家最新权威推荐排行榜
  • 2025年热门的碳化蒸笼用户好评厂家排行
  • 2025年靠谱的给水管设备厂家推荐及选购指南
  • 2025年优质的仪器计量校准厂家推荐及采购参考
  • 2025年比较好的45三折轨厂家实力及用户口碑排行榜
  • 一对一聊天软件源码,jwt登陆校验携带token - 云豹科技
  • 2025年比较好的端子厂家最新实力排行
  • 2025年热门的壁挂炉TOP品牌厂家排行榜
  • 2025年热门的电动执行器机构高评价厂家推荐榜
  • 2025年比较好的自动化设备工业铝型材优质厂家推荐榜单
  • 2025年评价高的托玛琳床垫高评价厂家推荐榜
  • PHP 组件未来:Livewire 4 正式发布,性能更快,功能更完整
  • 2025年优质的专利评估可靠合作企业