小记——时间复杂度一类
创始人
2024-03-30 13:40:33
0次

小问题

证明:nlog⁡2n=nlog⁡n(log⁡2n)+1n\log_2n=n^{\log_n(\log_2n)+1}nlog2​n=nlogn​(log2​n)+1

设 nlog⁡2n=nan\log_2n=n^anlog2​n=na。

两侧同时除以 nnn ,得:

na−1=log⁡2n\ n^{a-1}=\log_2n na−1=log2​n

a−1=log⁡n(log⁡2n)a-1=\log_n(\log_2n)a−1=logn​(log2​n)

a=log⁡n(log⁡2n)+1\ \ \ \ \ \ \ a=\log_n(\log_2n)+1       a=logn​(log2​n)+1

即上述。

时间复杂度符号(通常)

T(n)T(n)T(n) 表示规模为 nnn 的问题的时间复杂度。

OOO ,小于等于。

Θ\ThetaΘ ,等于。

Ω\OmegaΩ ,大于等于。

ooo ,小于。

ω\omegaω ,大于。

主定理

应用:

对于一个规模为 nnn 的母问题分治为规模 nb\frac{n}{b}bn​ 的子问题,每次的额外时间复杂度是O(nd)O(n^d)O(nd)。

形式上,求形如 T(n)=aT(nb)+O(nd)T(n)=aT(\frac{n}{b})+O(n^d)T(n)=aT(bn​)+O(nd) 的递归式的时间复杂度。

T(n)={O(nd)d>log⁡baO(ndlog⁡2n)d=log⁡baO(nlog⁡ba)d\log_ba\\ O(n^d\log_2n) & d=\log_ba\\ O(n^{\log_ba}) & d<\log_ba \end{cases} T(n)=⎩⎨⎧​O(nd)O(ndlog2​n)O(nlogb​a)​d>logb​ad=logb​ad

上述式子为了方便,统一采用 OOO 表示。事实上,对于 OOO 、 Θ\ThetaΘ 、 Ω\OmegaΩ 有不同的式子:

forO:T(n)=aT(⌈nb⌉)+O(nd)for\ O:T(n)=aT(\lceil\frac{n}{b}\rceil)+O(n^d)for O:T(n)=aT(⌈bn​⌉)+O(nd)

forΘ:T(n)=aT(nb)+Θ(nd)for\ \Theta:T(n)=aT(\frac{n}{b})+\Theta(n^d)for Θ:T(n)=aT(bn​)+Θ(nd)

forΩ:T(n)=aT(⌊nb⌋)+Ω(nd)for\ \Omega:T(n)=aT(\lfloor\frac{n}{b}\rfloor)+\Omega(n^d)for Ω:T(n)=aT(⌊bn​⌋)+Ω(nd)

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...