出一道题 : 二分法 是 n 分法 中 最快 的 吗 ?
二分法 是 n 分法 中 最快 的 吗 ? 用 数学 表达 :
n 、N 是 自然数, n >= 2, N >= n , 这 称为 条件 1 。
二分法 的 时间复杂度 大概 可以 表示 为 将 N 二分 到 小于等于 1 的 时间复杂度, 大概 可以写成 O2( N ) = 2 * log ﹙2﹚ N ,
n 分法 的 时间复杂度 大概 可以 表示 为 将 N n 分 到 小于等于 1 的 时间复杂度, 大概 可以写成 On( N ) = n * log ﹙n﹚ N ,
log ﹙2﹚ N 表示 2 为 底, N 为 真数 的 对数,
log ﹙n﹚ N 表示 n 为 底, N 为 真数 的 对数 。
试证明, 对于 满足 条件 1 的 任意 的 n 、N , n != 2 , 2 * log ﹙2﹚ N < n * log ﹙n﹚ N 。
但, 实际上 作了 一下 计算, 发现 三分法 才是 最快的, 二分法 次之, 四分法 和 二分法 一样快 。
好吧, 那就 证明 三分法 是 最快的 吧 ……
三分法 的 时间复杂度 O3( N ) = 3 * log ﹙3﹚ N , 试证明, 对于 满足 条件 1 的 任意 的 n 、N , n != 3 , 3 * log ﹙3﹚ N < n * log ﹙n﹚ N 。
也可以 证明 二分法 是 第二快 的 。
试证明,
1 3 * log ﹙3﹚ N < 2 * log ﹙2﹚ N
2 对于 满足 条件 1 的 任意 的 n 、N , n >= 5 , 2 * log ﹙2﹚ N < n * log ﹙n﹚ N 。
也可以证明 四分法 和 二分法 一样快 。
四分法 的 时间复杂度 是 O4( N ) = 4 * log ﹙4﹚ N , 试证明, 当 N > 0 时, 4 * log ﹙4﹚ N = 2 * log ﹙2﹚ N 。
考虑到 实际操作 的 离散性, log ﹙2﹚ N 和 log ﹙3﹚ N 的 小数 部分 应 看作 1, 并 加 到 整数 部分, 这样一来, 二分法 和 三分法 谁 快 ?
进一步, 对于 三分法, 如果 最后一次 的 被分割数 只 需要 二分 就可以 小于等于 1 , 那么, 最后一次 二分 就可以, 比 三分 少一次 操作,
考虑了这些, 二分法 和 三分法 的 时间复杂度 如何 ? 大家 可以 自己 算算 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!