【算法设计与分析】分治-时间复杂度计算

目录

  • 主定理 Master Theorem
      • 分治算法运行时间的递归表示
      • 主定理的简化形式
    • 主定理的一般形式
  • 递归树 Recursion Tree
    • 递归树的简单结论

主定理 Master Theorem

分治算法运行时间的递归表示

将原问题分解成 a 个子问题递归求解,每个子问题的规模是原问题的 1/b。同时子问题合并成原问题的时间为 n c n^c nc ,n 是原问题的规模。

对应的时间复杂度表达式: T ( n ) = a T ( n / b ) + O ( n c ) T(n) = aT(n/b) + O(n^c) T(n)=aT(n/b)+O(nc) ,对应的要求 a > = 1 a >=1 a>=1 b > = 2 b>=2 b>=2 c > = 0 c>=0 c>=0

主定理的简化形式

T ( n ) = a T ( n / b ) + O ( n c ) T(n) = aT(n/b) + O(n^c) T(n)=aT(n/b)+O(nc) ,要求 a > = 1 a >=1 a>=1 b > = 2 b>=2 b>=2 c > = 0 c>=0 c>=0 T ( 1 ) = O ( 1 ) T(1) = O(1) T(1)=O(1)

  • 如果 a < b c a < b^c a<bc,那么 T ( n ) = O ( n c ) T(n) = O(n^c) T(n)=O(nc)
  • 如果 a = b c a = b^c a=bc,那么 T ( n ) = O ( n c l o g n ) T(n) = O(n^clogn) T(n)=O(nclogn)
  • 如果 a > b c a > b^c a>bc,那么 T ( n ) = O ( n l o g b a ) T(n) = O(n^{log_ba}) T(n)=O(nlogba)

二分搜索

时间复杂度: T ( n ) = T ( n / 2 ) + 1 T(n)=T(n/2)+1 T(n)=T(n/2)+1
a = 1 a=1 a=1 b = 2 b=2 b=2 c = 0 c=0 c=0
对应 a = b c a=b^c a=bc,因此 T ( n ) = n 0 l o g n = l o g n T(n)=n^0logn=logn T(n)=n0logn=logn

归并排序

时间复杂度: T ( n ) = 2 T ( n / 2 ) + O ( n ) T(n)=2T(n/2)+O(n) T(n)=2T(n/2)+O(n)
a = 2 a=2 a=2 b = 2 b=2 b=2 c = 1 c=1 c=1
对应 a = b c a=b^c a=bc,因此 T ( n ) = n 1 l o g n = n l o g n T(n)=n^1logn=nlogn T(n)=n1logn=nlogn

多项式乘法(直接分治)

时间复杂度: T ( n ) = 4 T ( n / 2 ) + O ( n ) T(n)=4T(n/2)+O(n) T(n)=4T(n/2)+O(n)
a = 4 a=4 a=4 b = 2 b=2 b=2 c = 1 c=1 c=1
对应 a > b c a>b^c a>bc,因此 T ( n ) = n l o g 2 4 = n 2 T(n)=n^{log_24}=n^2 T(n)=nlog24=n2

多项式乘法(递归优化,Karatsuba算法)

时间复杂度: T ( n ) = 3 T ( n / 2 ) + O ( n ) T(n)=3T(n/2)+O(n) T(n)=3T(n/2)+O(n)
a = 3 a=3 a=3 b = 2 b=2 b=2 c = 1 c=1 c=1
对应 a > b c a>b^c a>bc,因此 T ( n ) = n l o g 2 3 = n 1 . 58 T(n)=n^{log_23}=n^1.58 T(n)=nlog23=n1.58

矩阵乘法(直接分治)

时间复杂度: T ( n ) = 8 T ( n / 2 ) + O ( n 2 ) T(n)=8T(n/2)+O(n^2) T(n)=8T(n/2)+O(n2)
a = 8 a=8 a=8 b = 2 b=2 b=2 c = 2 c=2 c=2
对应 a > b c a>b^c a>bc,因此 T ( n ) = n l o g 2 8 = n 3 T(n)=n^{log_28}=n^3 T(n)=nlog28=n3

矩阵乘法(Strassen算法)
时间复杂度: T ( n ) = 7 T ( n / 2 ) + O ( n 2 ) T(n)=7T(n/2)+O(n^2) T(n)=7T(n/2)+O(n2)
a = 7 a=7 a=7 b = 2 b=2 b=2 c = 2 c=2 c=2
对应 a > b c a>b^c a>bc,因此 T ( n ) = n l o g 2 7 = n 2.81 T(n)=n^{log_27}=n^{2.81} T(n)=nlog27=n2.81

主定理的一般形式

一般 主定理的简化形式 可以满足大部分的分治算法的时间复杂度分析,但是也存在 简化主定理 不适用的情况:

  • 子问题数量不是常数:
    • T ( n ) = n T ( n / 2 ) + O ( n 2 ) T(n) = nT(n/2) + O(n^2) T(n)=nT(n/2)+O(n2)
  • 子问题数量小于1:
    • T ( n ) = 1 / 2 T ( n / 2 ) + O ( n 2 ) T(n) = 1/2 T(n/2) + O(n^2) T(n)=1/2T(n/2)+O(n2)
  • 分解原问题与合并子问题的总时间并不是 n c n^c nc
    • T ( n ) = 2 T ( n / 2 ) + O ( n l o g n ) T(n) = 2T(n/2) + O(nlogn) T(n)=2T(n/2)+O(nlogn)

因此,使用更广泛的主定理的一般形式:

T ( n ) = a T ( n / b ) + f ( n ) T(n) = aT(n/b) + f(n) T(n)=aT(n/b)+f(n) ,要求 a > 0 a > 0 a>0 b > 1 b>1 b>1 T ( 1 ) = O ( 1 ) T(1) = O(1) T(1)=O(1)

  • 如果 ∃ ϵ > 0 ∃ϵ > 0 ϵ>0 使 f ( n ) = O ( n l o g b a − ϵ ) f(n) = O(n^{log_ba-ϵ}) f(n)=O(nlogbaϵ),那么 T ( n ) = Θ ( n l o g b a ) T(n) = Θ(n^{log_ba}) T(n)=Θ(nlogba)
  • 如果 ∃ k > = 0 ∃k >= 0 k>=0 使 f ( n ) = O ( n l o g b a l o g k n ) f(n) = O(n^{log_ba}log^kn) f(n)=O(nlogbalogkn),那么 T ( n ) = Θ n l o g b a l o g k + 1 n ) T(n) = Θn^{log_ba}log^{k+1}n) T(n)=Θnlogbalogk+1n)
  • 如果 ∃ ϵ > 0 ∃ϵ > 0 ϵ>0 使 f ( n ) = Ω ( n l o g b a + ϵ ) f(n) = Ω(n^{log_ba+ϵ}) f(n)=Ω(nlogba+ϵ),且对于某个常数 c < 1 c < 1 c<1和足够大的 n n n a f ( n / b ) < = c f ( n ) af(n/b)<=cf(n) af(n/b)<=cf(n),那么 T ( n ) = Θ ( f ( n ) ) T(n) = Θ(f(n)) T(n)=Θ(f(n))

通俗的来解释,就是看 n l o g b a n^{log_ba} nlogba f ( n ) f(n) f(n) 的增长率大小:

  • 情况一: n l o g b a n^{log_ba} nlogba f ( n ) f(n) f(n) 的增长更快
  • 情况二: n l o g b a n^{log_ba} nlogba f ( n ) f(n) f(n) 的增长快慢类似
  • 情况三: n l o g b a n^{log_ba} nlogba f ( n ) f(n) f(n) 的增长更慢

情况一

n l o g b a n^{log_ba} nlogba f ( n ) f(n) f(n) 的增长更快,至少要快 Θ ( n ϵ ) Θ(n^ϵ) Θ(nϵ)倍。

T ( n ) = 9 T ( n / 3 ) + n T(n) = 9T(n/3) + n T(n)=9T(n/3)+n
n l o g b a = n 2 n^{log_ba} = n^2 nlogba=n2 f ( n ) = n = O ( n 2 − ϵ ) f(n) = n = O(n^{2-ϵ}) f(n)=n=O(n2ϵ) 0 < ϵ < = 1 0< ϵ <= 1 0<ϵ<=1
因此 T ( n ) = O ( n 2 ) T(n) = O(n^2) T(n)=O(n2)

情况二

n l o g b a n^{log_ba} nlogba f ( n ) f(n) f(n) 的增长快慢类似,同时 f ( n ) f(n) f(n)要比 n l o g b a n^{log_ba} nlogba Θ ( l o g k n ) Θ(log^kn) Θ(logkn)倍。

T ( n ) = T ( 2 n / 3 ) + 1 T(n) = T(2n/3) + 1 T(n)=T(2n/3)+1
n l o g b a = n l o g 3 / 2 1 = n 0 = 1 n^{log_ba} = n^{log_{3/2}1} = n^0 = 1 nlogba=nlog3/21=n0=1 f ( n ) = 1 = Θ ( n l o g b a l o g 0 n ) f(n) = 1 = Θ(n^{log_ba}log^0n) f(n)=1=Θ(nlogbalog0n)
因此 T ( n ) = Θ ( l o g n ) T(n) = Θ(logn) T(n)=Θ(logn)

情况三

f ( n ) f(n) f(n) n l o g b a n^{log_ba} nlogba 的增长更快,至少要快 Θ ( n ϵ ) Θ(n^ϵ) Θ(nϵ)倍,且 a f ( n / b ) ≤ c f ( n ) af(n/b) ≤ cf(n) af(n/b)cf(n)

T ( n ) = 3 T ( n / 4 ) + n l o g n T(n) = 3T(n/4) + n log n T(n)=3T(n/4)+nlogn
n l o g b a = n l o g 4 3 = n 0.793 n^{log_ba} = n^{log_43} = n^{0.793} nlogba=nlog43=n0.793 f ( n ) = n l o g n = Ω ( n l o g 4 3 + ϵ ) f(n) = nlogn = Ω(n^{log_43+ϵ}) f(n)=nlogn=Ω(nlog43+ϵ) ϵ ≤ 0.207 ϵ ≤ 0.207 ϵ0.207
并且 a f ( n / b ) = 3 f ( n / 4 ) = 3 ( n / 4 ) l o g ( n / 4 ) ≤ ( 3 / 4 ) n l o g n = c f ( n ) af(n/b) = 3f(n/4) = 3(n/4)log(n/4) ≤ (3/4)nlogn = cf(n) af(n/b)=3f(n/4)=3(n/4)log(n/4)(3/4)nlogn=cf(n) c = 3 / 4 c= 3/4 c=3/4
因此 T ( n ) = Θ ( n l o g n ) T(n) = Θ(nlogn) T(n)=Θ(nlogn)

使用主定理一般形式求解时间复杂度

T ( n ) = 8 T ( n / 2 ) + Θ ( 1 ) T(n) = 8T(n/2) + Θ(1) T(n)=8T(n/2)+Θ(1)
n l o g b a n^{log_ba} nlogba = n 3 n^3 n3 f ( n ) = Θ ( 1 ) = O ( n 3 − ϵ ) f(n) = Θ(1) = O(n^{3-ϵ}) f(n)=Θ(1)=O(n3ϵ),对于 ϵ < 3 ϵ<3 ϵ<3成立
因此 T ( n ) = Θ ( n l o g b a ) T(n)=Θ(n^{log_ba}) T(n)=Θ(nlogba) = Θ ( n 3 ) = Θ(n^3) =Θ(n3)

T ( n ) = 7 T ( n / 2 ) + Θ ( n 2 ) T(n) = 7T(n/2) + Θ(n^2) T(n)=7T(n/2)+Θ(n2)
n l o g b a n^{log_ba} nlogba = n l o g 2 7 = n^{log_27} =nlog27 = n 2.81 = n^{2.81} =n2.81 f ( n ) = Θ ( n 2 ) = O ( n 2.81 − ϵ ) f(n) = Θ(n^2) = O(n^{2.81-ϵ}) f(n)=Θ(n2)=O(n2.81ϵ),对于 ϵ < 0.8 ϵ<0.8 ϵ<0.8成立
因此 T ( n ) = Θ ( n l o g b a ) T(n)=Θ(n^{log_ba}) T(n)=Θ(nlogba) = Θ ( n 2.81 ) = Θ(n^{2.81}) =Θ(n2.81)

T ( n ) = 2 T ( n / 2 ) + Θ ( n ) T(n) = 2T(n/2) + Θ(n) T(n)=2T(n/2)+Θ(n)
n l o g b a n^{log_ba} nlogba = n l o g 2 2 = n = n^{log_22} = n =nlog22=n f ( n ) = Θ ( n ) f(n) = Θ(n) f(n)=Θ(n),二者增长率类似。
并且 f ( n ) = Θ ( n ) = Θ ( n l o g 2 2 l o g 0 n ) f(n) = Θ(n) = Θ(n^{log_22}log^0n) f(n)=Θ(n)=Θ(nlog22log0n)
因此 T ( n ) = Θ ( n l o g n ) T(n) = Θ(nlogn) T(n)=Θ(nlogn)

T ( n ) = 2 T ( n / 2 ) + n l o g n T(n) = 2T(n/2) + nlogn T(n)=2T(n/2)+nlogn
n l o g b a n^{log_ba} nlogba = n l o g 2 2 = n = n^{log_22} = n =nlog22=n f ( n ) = n l o g n = Θ ( n l o g b a l o g 1 n ) f(n) = nlogn = Θ(n^{log_ba} log^1n) f(n)=nlogn=Θ(nlogbalog1n)
注意:虽然 f ( n ) f(n) f(n)要比 n l o g b a n^{log_ba} nlogba,,但没有快 n ϵ n^ϵ nϵ,因此不适用于情况三。
因此 T ( n ) = Θ ( n l o g n ) T(n) = Θ(nlogn) T(n)=Θ(nlogn)

主定理的一般形式虽然适用范围更的广,但是仍然有不适用的情况:

  • n l o g b a n^{log_ba} nlogba f ( n ) f(n) f(n) 的增长率不能比
  • n l o g b a n^{log_ba} nlogba f ( n ) f(n) f(n) 增长的更快,但没有快 Θ ( n ϵ ) Θ(n^ϵ) Θ(nϵ)
  • f ( n ) f(n) f(n) n l o g b a n^{log_ba} nlogba 增长的更快,但没有快 Θ ( n ϵ ) Θ(n^ϵ) Θ(nϵ)

T ( n ) = 2 T ( n / 2 ) + n / l o g n T(n) = 2T(n/2) + n/log n T(n)=2T(n/2)+n/logn
n l o g b a = n nlogb a = n nlogba=n f ( n ) = n / l o g n f(n) = n/logn f(n)=n/logn
n l o g b a nlogb a nlogba f ( n ) f(n) f(n) 增长的更快,但也只快 Θ ( l o g n ) Θ(logn) Θ(logn),因此不适用情况1
f ( n ) = n / l o g n = Θ ( n l o g b a l o g − 1 n ) f(n) = n/log n = Θ(n^{logb a} log^{−1} n) f(n)=n/logn=Θ(nlogbalog1n) k = − 1 k=-1 k=1,因此也不适用于情况2

递归树 Recursion Tree

递归树:有根树,根节点代表原问题,根节点以外的所有节点都代表一个子问题。节点的值代表解决该子问题所花费的除递归调用的时间。
原问题的运行时间等于该树所有节点的值的和。
递归树的叶子节点是递归的基本情况。

递归树的示例:
T ( n ) = a T ( n / b ) + f ( n ) T(n) = aT(n/b) + f(n) T(n)=aT(n/b)+f(n)
最终该公式的递归树如下图所示:
其中蓝色箭头表示递归树的每一层的时间花销之和。每一层的时间花销,相当于每一层递归是 f ( n ) f(n) f(n)产生的时间花销。
在这里插入图片描述

假设叶子节点的时间花销 f ( n / b L ) = 0 f(n/b^L) = 0 f(n/bL)=0,则 L = l o g b n L = log_bn L=logbn
整体的时间复杂度: T ( n ) = ∑ i = 0 L a i f ( n / b i ) T(n) = \sum_{i=0}^{L}a^if(n/b^i) T(n)=i=0Laif(n/bi)

递归树的简单结论

假设每⼀层节点值之和是上⼀层节点值之和的 r 倍(即构成几何级数)

  • r < 1 r < 1 r<1,那么 T ( n ) = O ( f ( n ) ) T(n) = O(f(n)) T(n)=O(f(n))
  • r = 1 r = 1 r=1,那么 T ( n ) = O ( f ( n ) l o g n ) T(n) = O(f(n)logn) T(n)=O(f(n)logn)
  • r > 1 r > 1 r>1,那么 T ( n ) = O ( a L ) = O ( a l o g b n ) = O ( n l o g b a ) T(n) = O(a^L) = O(a^{log_bn}) = O(n^{log_ba}) T(n)=O(aL)=O(alogbn)=O(nlogba)

T ( n ) = 3 T ( n / 4 ) + Θ ( n 2 ) T(n) = 3T(n/4) + Θ(n^2) T(n)=3T(n/4)+Θ(n2)
最终递归树如图所示,每一层(除根节点)都和上一层差距 3 / 16 < 1 3/16 < 1 3/16<1 倍,因此 T ( n ) = O ( f ( n ) ) = O ( n 2 ) T(n) = O(f(n)) = O(n^2) T(n)=O(f(n))=O(n2)
在这里插入图片描述

但有的递归树各层节点值之和并不构成几何级数:

T ( n ) = 2 T ( n / 2 ) + n / l g n T(n) = 2T(n/2) + n/lg n T(n)=2T(n/2)+n/lgn

i i i 层的和为 n / l g ( n / 2 i ) = n / ( l g n − i ) n/lg(n/2^i) = n/(lg n − i) n/lg(n/2i)=n/(lgni) l g n − i ≥ 1 ⇒ i ≤ l g n − 1 lg n − i ≥ 1 ⇒ i ≤ lg n − 1 lgni1ilgn1
T ( n ) = ∑ i = 0 L n / ( l g n − i ) = ∑ i = 0 l g n − 1 n / ( l g n − i ) = = ∑ j = 1 l g n n / i T(n) = \sum_{i=0}^{L}n/(lg n − i) = \sum_{i=0}^{lgn - 1}n/(lg n − i) = = \sum_{j=1}^{lgn}n/ i T(n)=i=0Ln/(lgni)=i=0lgn1n/(lgni)==j=1lgnn/i
使用调和级数: H n = ∑ i = 1 n 1 / i = Θ ( l o g n ) H_n = \sum_{i=1}^{n}1/i = Θ(log n) Hn=i=1n1/i=Θ(logn)
因此 T ( n ) = ∑ j = 1 l g n n / i = n H l g n = Θ ( n l g l g n ) T(n) = \sum_{j=1}^{lgn}n/ i = nH_{lgn} =Θ(n lg lg n) T(n)=j=1lgnn/i=nHlgn=Θ(nlglgn)
在这里插入图片描述

T ( n ) = 4 T ( n / 2 ) + n l g n T(n) = 4T(n/2) + n lg n T(n)=4T(n/2)+nlgn
第 i 层共有 4 i 4^i 4i 个节点,其每个节点的时间花销: ( n / 2 i ) l g ( n / 2 i ) = ( n / 2 i ) ( l g n − i ) (n/2^i)lg(n/2^i) = (n/2^i)(lgn - i) (n/2i)lg(n/2i)=(n/2i)(lgni)
因此总的时间花销: T ( n ) = ∑ i = 0 l g n ( n / 2 i ) ( l g n − i ) = Θ ( n 2 ) T(n) = \sum_{i=0}^{lgn}(n/2^i)(lgn - i) = Θ(n^2) T(n)=i=0lgn(n/2i)(lgni)=Θ(n2)
在这里插入图片描述

T ( n ) = n T ( n ) + n T(n) = n T( n) + n T(n)=nT(n)+n
前几层的节点时间花销之和:
在这里插入图片描述
T ( n ) = ∑ i = 0 L n T(n) = \sum_{i=0}^{L}n T(n)=i=0Ln L = l g l g n L = lg lg n L=lglgn
T ( n ) = Θ ( n l g l g n ) T(n) = Θ(n lg lg n) T(n)=Θ(nlglgn)

T ( n ) = T ( n / 3 ) + T ( 2 n / 3 ) + n T(n) = T(n/3) + T(2n/3) + n T(n)=T(n/3)+T(2n/3)+n
该递归公式,最终绘制成的递归树,左右是不平衡的。
考虑上界和下界:
l o g 3 n ≤ L ≤ l o g 3 / 2 n log_3n ≤ L ≤ log_{3/2}n log3nLlog3/2n
上界 T ( n ) ≤ ∑ i = 0 l o g 3 / 2 n i = n l o g 3 / 2 n T(n) ≤ \sum_{i=0}^{log_{3/2}n} i = nlog_{3/2}n T(n)i=0log3/2ni=nlog3/2n
上界 T ( n ) ≤ ∑ i = 0 l o g 3 n i = n l o g 3 n T(n) ≤ \sum_{i=0}^{log_{3}n} i = nlog_{3}n T(n)i=0log3ni=nlog3n
因此: T ( n ) = Θ ( n l o g n ) T(n) = Θ(n log n) T(n)=Θ(nlogn)
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/601262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

go-cqhttp作者停止维护——替代品OpenShamrock的使用方法

目录 前言 解决办法 配置要求 实操 刷入面具 安装lsp框架 安装OpenShamrock和QQ 注意 大功告成 前言 由于QQ官方针对协议库的围追堵截&#xff0c;go-cqhttp已经无力维护下去了 原文连接 QQ Bot的未来以及迁移建议 Issue #2471 Mrs4s/go-cqhttp (github.com)https…

最新GPT4.0使用教程,AI绘画,ChatFile文档对话总结+GPT语音对话使用,DALL-E3文生图

一、前言 ChatGPT3.5、GPT4.0、GPT语音对话、Midjourney绘画&#xff0c;文档对话总结DALL-E3文生图&#xff0c;相信对大家应该不感到陌生吧&#xff1f;简单来说&#xff0c;GPT-4技术比之前的GPT-3.5相对来说更加智能&#xff0c;会根据用户的要求生成多种内容甚至也可以和…

16.顺子日期(14)

题目 public class Main {public static boolean isLegal(String date) {int l 0;int n date.length();while(l<(n-3)) {int t1 (int)Integer.valueOf(date.substring(l,l1));int t2 (int)Integer.valueOf(date.substring(l1,l2));int t3 (int)Integer.valueOf(date.s…

FreeRTOS 实时操作系统第十二讲 - 计数信号量

一、信号量的概念 1、信号量的基本概念 消息队列是实现任务与任务或任务与中断间通信的数据结构&#xff0c;可类比裸机编程中的数组 信号量是实现任务与任务或任务与中断间通信的机制&#xff0c;可以类比裸机编程中的标志位 信号量 (semaphore) 可以实现任务与任务或任务与中…

银河麒麟Kylin-Server-V10-SP3使用ISO镜像搭建本地内网YUM/DNF源cdrom/http

机房服务器安装一般是内网环境&#xff0c;需要配置本地的YUM/DNF源。本文介绍通过ISO镜像搭建内网环境的UM/DNF源 准备工作&#xff1a; 提前准备好Kylin-Server-V10-SP3的ISO镜像文件。 本机IP地址&#xff1a;192.168.40.201 镜像存放目录/data/iso/Kylin-Server-V10-SP3-Ge…

Linux-端口、nmap命令、netstat命令

端口是设备与外界通讯交流的出入口&#xff0c;可分为物理端口和虚拟端口 物理端口实际存在可以看见&#xff0c;而虚拟端口是指计算机内部的端口&#xff0c;是不可见的&#xff0c;用来操作系统和外部交互使用。 IP地址不能锁定程序&#xff0c;所以可以通过端口&#xff0…

原生微信小程序如何动态修改svg图片颜色及尺寸、宽高(封装svgIcon组件)解决ios不显示问题

最终效果 前言 动态设置Svg图片颜色就是修改Svg源码的path中的fill属性&#xff0c; 通过wx.getFileSystemManager().readFile读取.xlsx文件 ios不显示需要把encoding设置 binary 把文件转成base64 封装svg-icon组件 1、在项目的components下新建svg-icon文件夹&#xff0c;新…

OA系统与工单系统的区别:功能、应用与优势对比

很多企业在选购系统的时候会陷入选择困难症的漩涡。市面上的各种系统&#xff0c;比如ERP系统、OA系统、工单系统等等让人眼花缭乱。想要选择一款合适的系统&#xff0c;前提是明确地知道自己需要用它来做什么&#xff0c;其次去了解每个系统的应用场景、功能等是否与自己的需求…

自动驾驶感知-预测-决策-规划-控制学习(3):感知方向文献阅读笔记

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、文章主题二、摘要阅读1.名词理解①点云是什么&#xff1f;②二维图像分割器③轻量化卷积网络提取特征④单模态表达和多模态特征融合的区别⑤基于ROS的多传感…

jetson deepstream 解码接入编码输出

不需要编解码输出画面的直接到7 使用就行 1 jetson主板编译工具 在jetson主板上安装gstreamer工具链&#xff0c;编译opencv sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-ugly gstreamer1.0-rtsp python3-dev pytho…

安全与认证Week3 Tutorial+历年题补充

目录 1) 什么是重放攻击? 2)什么是Kerberos系统?它提供什么安全服务? 3)服务器验证客户端身份的一种简单方法是要求提供密码。在Kerberos中不使用这种身份验证&#xff0c;为什么?Kerberos如何对服务器和客户机进行身份验证? 4) Kerberos的四个要求是什么?Kerberos系…

C++日期类的实现

前言&#xff1a;在类和对象比较熟悉的情况下&#xff0c;我们我们就可以开始制作日期表了&#xff0c;实现日期类所包含的知识点有构造函数&#xff0c;析构函数&#xff0c;函数重载&#xff0c;拷贝构造函数&#xff0c;运算符重载&#xff0c;const成员函数 1.日期类的加减…

JetBrains Rider使用总结

简介&#xff1a; JetBrains Rider 诞生于2016年&#xff0c;一款适配于游戏开发人员&#xff0c;是JetBrains旗下一款非常年轻的跨平台 .NET IDE。目前支持包括.NET 桌面应用、服务和库、Unity 和 Unreal Engine 游戏、Xamarin 、ASP.NET 和 ASP.NET Core web 等多种应用程序…

面试题--消失的两个数字(困难)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 本题链接 输入描述 输出描述 算法分析 触类旁通一&#xff1a;消失的数字 题目分析 图示 解题源码 触类旁通二&#xff1a;只出现一次的数字III 题目分析 图示 解题源码 本题分析 解题源码 本题链接 力…

Linux第19步_安装“Ubutun交叉编译工具链”

由于Ubuntu系统使用的GCC编译器&#xff0c;编译结果是X86文件&#xff0c;只能在X86上运行&#xff0c;不能在ARM上直接运行。因此&#xff0c;还要安装一个“Ubutun交叉编译工具链”&#xff0c;才可以在ARM上运行。 arm-none-linux-gnueabi-gcc是 Codesourcery 公司&#x…

PHP语言B/S架构医院(安全)不良事件上报系统源码

医院安全&#xff08;不良&#xff09;事件上报系统采用无责的、自愿的填报不良事件方式&#xff0c;有效地减轻医护人员的思想压力&#xff0c;实现以事件为主要对象&#xff0c;可以自动、及时、实际地反应医院的安全、不良、近失事件的情况&#xff0c;更好地掌握不良事件的…

【Docker】docker 服务相关命令

目录 1. 启动docker 服务 2.查看docker 服务的状态 3. 停止docker 服务 4.重启 docker 服务 5.开机自启动命令 1. 启动docker 服务 systemctl start docker 2.查看docker 服务的状态 systemctl status docker 3. 停止docker 服务 systemctl stop docker 此时再使用 syst…

C++八股学习心得.5

1.基类 & 派生类 一个类可以派生自多个类&#xff0c;这意味着&#xff0c;它可以从多个基类继承数据和函数。定义一个派生类&#xff0c;我们使用一个类派生列表来指定基类。类派生列表以一个或多个基类命名&#xff0c;形式如下&#xff1a; class derived-class: acce…

网络摄像机的网络连接

网络摄像机的网络连接 1. 网络连接2. 网络直通线和网络交叉线的制作方法References 1. 网络连接 网络摄像机完成安装后&#xff0c;需要进行功能的配置及参数的设置&#xff0c;您可以通过浏览器进行相关功能的配置。 有线网络连接 左侧为通过网络直通线连接的示意图&#x…

阿里云服务器Centos安装宝塔面板

阿里云服务器Centos安装宝塔面板 1 背景1.1 aliyun1.2 Linux 2 安装步骤2.0 环境配置2.1 安装前准备2.2 宝塔安装2.3 建站 3 centos常用命令3.1 防火墙相关 1 背景 1.1 aliyun 阿里云服务器是阿里云提供的一项云计算服务&#xff0c;它能够帮助用户快速搭建网站、应用和服务&…