码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 归并排序的复杂度


    根据递归方程求解:

    T ( n ) = 2 T ( n 2 ) + 2 n T(n) = 2T( \frac{n}{2}) + 2n T(n)=2T(2n​)+2n

    T ( n 2 ) = 2 T ( n 4 ) + 2 n 2 T(\frac{n}{2}) = 2T( \frac{n}{4}) + 2\frac{n}{2} T(2n​)=2T(4n​)+22n​

    T ( n 4 ) = 2 T ( n 8 ) + 2 n 4 T(\frac{n}{4}) = 2T( \frac{n}{8}) + 2\frac{n}{4} T(4n​)=2T(8n​)+24n​

    T ( n 8 ) = 2 T ( n 16 ) + 2 n 8 T(\frac{n}{8}) = 2T( \frac{n}{16}) + 2\frac{n}{8} T(8n​)=2T(16n​)+28n​

    . . . ... ...

    T ( 2 ) = 2 T ( 1 ) + 4 T(2) = 2T( 1) + 4 T(2)=2T(1)+4

    T ( 1 ) = 1 T(1) = 1 T(1)=1

    上述式子共有 log ⁡ 2 n \log_2n log2​n项。

    考虑:

    1. 因为每一项都取决于前一项,将T(1)带入T(2), T(2)带入T(4)…T(n/2) 带入T(n)后,第一部分总共有 log ⁡ 2 n \log_2n log2​n个2相乘, 因此第一部分值为 2 log ⁡ 2 n = n 2^{\log_2n} = n 2log2​n=n。
    2. 第二部分为: 2 n + 2 n + 2 n + . . + 2 n 2n + 2n + 2n + .. + 2n 2n+2n+2n+..+2n,且总共有 log ⁡ 2 n \log_2n log2​n项, 和为 2 n log ⁡ 2 n 2n\log_2n 2nlog2​n。
    3. 总共的时间复杂度为: n + 2 n log ⁡ 2 n = O ( n log ⁡ 2 n ) n + 2n\log_2n = O(n\log_2n) n+2nlog2​n=O(nlog2​n)。
    4. 思考若是递推方程第二项中是一个常数,比如O(1),那么复杂度是多少?答案是 O ( n ) O(n) O(n)。若是O(n), 则变为 O ( n 2 ) O(n^2) O(n2)。
    5. 若第一项中f(n/2)变为f(n/3)则时间复杂度变为O(n),请思考这样变化的原因是什么呢?

    堆排序、非极限情况下的快速排序和归并排序的计算方法类似,时间复杂度都是 O ( n log ⁡ 2 n ) O(n\log_2n) O(nlog2​n).

    汉诺塔(Hanoi)的递推方程为T(n) = 2T(n-1),分治后问题规模减1,层层带入后所得的时间复杂度为 2 n − 1 , 即 O ( 2 n ) 2^n-1, 即O(2^n) 2n−1,即O(2n)。

  • 相关阅读:
    双核驱动,合力共进,郁锦香与凯里亚德酒店强强联合释放多元化商业价值
    php 提取word 的内容 必须是docx格式
    趣睡科技上市:市值41亿募资缩水超4亿 小米顺为是股东
    第四站:数组
    记录:微星 GE63 屏轴断裂 之后。。。
    【MySQL】 MySQL数据库基础
    一种跳板机的实现思路
    【Java初阶】面向对象三大特性之继承
    CT0514是一个完善的单片锂离子电池恒流/恒压线形 电源管理芯片
    非常实用的Visual Studio Code快捷键(2) 欢迎各位大侠补充
  • 原文地址:https://blog.csdn.net/m0_37567738/article/details/133834321
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号