在43:30的MIT OCW 6.006的朗诵视频中,
给定一个具有列和行的矩阵,二维峰查找算法(其中一个峰是大于或等于其相邻邻居的任何值)被描述为:
注意:如果在通过来描述列时出现混淆,我表示歉意,但这是背诵视频描述它的方式,我尝试与该视频保持一致。这让我非常困惑。
选择中间的列 // 具有复杂性
求列的最大值// 具有复杂度, 因为一列中有行Θ (米)米
检查水平。最大值的行邻居,如果大于,则找到一个峰值,否则以递归// 具有复杂度T (n / 2 ,m )
然后要评估递归,背诵教练说
因为它找到最大值
我了解下一部分,在视频中的52:09,他说要把当作常量,因为行数永不改变。但我不知道这如何导致以下产品:
我认为,由于被视为常量,因此将其视为并在上面的中将其消除。但是我很难跳转到。这是因为我们现在考虑的是常数的的情况吗?Θ (1 )(Ë 1 )(Ë 2 )ţ (ñ / 2 )米
我认为可以“看到”总体思想是,在最坏的情况下,对m个行执行操作。我要弄清楚的是如何描述从到到其他人的跳跃,即获得真正的理解。(E 1 )(E 2 )