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

算法课堂-分治算法

分治算法

把一任务分成几部分(通常是两部分)来完成(或只完成一部分),从而实现整个任务的完成
或者你可以把递归理解为分治算法的一部分
因为递归就是把问题分解来解决问题
例子
称假币
在这里插入图片描述

最笨的方法:两两称,运气好第一次就可以确定有假币,运气不好,最后才能确定没有假币(或有假币)
可以用
在这里插入图片描述
来实现,比两两称简单很多

应用-归并排序

在这里插入图片描述
可以看我的数据结构之归并排序
归并排序的时间复杂度
1.分开排序的时间复杂度=分开时间复杂度2+归并的时间复杂度(归并本质就是指针后移比大小所以是O(n))然后我们表达为an,a是常数
找规律
知道T(1) 此时k=log2n

2^k+k*a*n=n+a*(log2n)*n

后面参数大
就是O(nlog2n)
在这里插入图片描述

应用-快速排序

在这里插入图片描述
同样可以看我的数据结构之快速排序
一般k=a[0]的话,把大于等于的放在右半部分1

http://www.lryc.cn/news/21277.html

相关文章:

  • 操作系统权限提升(十六)之绕过UAC提权-CVE-2019-1388 UAC提权
  • 实例9:四足机器人运动学正解平面RR单腿可视化
  • 堆的基本存储
  • 如何获取物体立体信息通过一个相机
  • 【数据挖掘实战】——中医证型的关联规则挖掘(Apriori算法)
  • 一些硬件学习的注意事项与快捷方法
  • 【Tomcat】Tomcat安装及环境配置
  • 负载均衡:LVS 笔记(二)
  • SEO优化:干货技巧分享,包新站1-15天100%收录首页
  • JavaWeb测试题
  • Java EE|TCP/IP协议栈之数据链路层协议详解
  • Lighthouse组合Puppeteer检测页面
  • 【C++】仿函数、lambda表达式、包装器
  • 二叉树(二)
  • 爬虫知识简介
  • 2023年全国最新会计专业技术资格精选真题及答案6
  • 同时学习C++语言和C#语言好吗?
  • Android8,source与lunch流程解析
  • 大数据NiFi(二十):实时同步MySQL数据到Hive
  • mac 如何设置 oh my zsh 终端terminal 和添加主题powerlevel10k
  • 王道《操作系统》学习(一)——计算机系统概述
  • 什么是自适应平台服务?
  • QML Image and Text(图像和文字)
  • 图解LeetCode——剑指 Offer 25. 合并两个排序的链表
  • 2023年全国最新安全员精选真题及答案7
  • TypeScript笔记-进行中
  • 阅读HAL源码之重点总结
  • 常见的http请求响应的状态码
  • UML类图中的类图、接口图、关联、聚合、依赖、组合概念的解释
  • 【数据库】第九章 关系查询处理与优化