2
二维峰发现复杂度(MIT OCW 6.006)
在43:30的MIT OCW 6.006的朗诵视频中, 给定一个具有列和行的矩阵,二维峰查找算法(其中一个峰是大于或等于其相邻邻居的任何值)被描述为:m×n米×ñm \times nA一个Am米mnñn 注意:如果在通过来描述列时出现混淆,我表示歉意,但这是背诵视频描述它的方式,我尝试与该视频保持一致。这让我非常困惑。nñn 选择中间的列 // 具有复杂性n/2ñ/2n/2Θ(1)Θ(1个)\Theta(1) 求列的最大值// 具有复杂度, 因为一列中有行Θ (米)米n/2ñ/2n/2Θ(m)Θ(米)\Theta(m)m米m 检查水平。最大值的行邻居,如果大于,则找到一个峰值,否则以递归// 具有复杂度T (n / 2 ,m )T(n/2,m)Ť(ñ/2,米)T(n/2, m)T(n/2,m)Ť(ñ/2,米)T(n/2,m) 然后要评估递归,背诵教练说 T(1,m)=Θ(m)Ť(1个,米)=Θ(米)T(1,m) = \Theta(m)因为它找到最大值 Ť(n ,m )= Θ (1 )+ Θ (m )+ T(n / 2 ,m )(E1)(E1)Ť(ñ,米)=Θ(1个)+Θ(米)+Ť(ñ/2,米) T(n,m) = \Theta(1) + \Theta(m) + T(n/2, m) \tag{E1} 我了解下一部分,在视频中的52:09,他说要把当作常量,因为行数永不改变。但我不知道这如何导致以下产品:米米m …