gpt4 book ai didi

algorithm - 计算转置矩阵的时间复杂度

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:12:34 24 4
gpt4 key购买 nike

该代码是一段尝试转置矩阵的代码的摘要版本。我的任务是找出这个程序的时间复杂度。

enter image description here

我只对发生交换次数的时间复杂度感兴趣。我发现在交换的外循环上它发生了 n-1 次,而对于内循环它发生了 (n^2 -n)/2 次。


我通过用数字代替 n 推导出这些解决方案。

  • 当n=4时,我的内层循环会循环1+2+3次
  • 当 n=5 时,我的内部循环会循环 1+2+3+4 次
  • 因此 innerloop=(n^2 - n)/2

我如何计算这段代码的时间复杂度?


我在网上看到有人只是从他的内循环计数中获取值并确定它是一个 O(n) 复杂度。


[编辑]我是否也需要在其他循环中迎合计算时间复杂度?

最佳答案

您的交换算法是一个明确的(1+2+3+...n) 案例,translates to n×(n+1)/2.

由于计算中的常量和低阶部分不计入大 O 表示法,因此这转换为 O(n^2)

采用其他循环不会改变您的时间复杂度,因为它们也是 O(n^2)。就大 O 而言,编写 O(3(n^2)) 是没有意义的,因为常量被丢弃了。

但是在这里可以帮助您的是您不需要为更复杂的 swap for 循环操心。 (我不是说你在学习的时候。我是说,当你处理现实世界的问题时。)

附带说明,我建议阅读破解编码面试(第 6 版)(2015 年)Big O 部分的示例 3 strong> by - McDowell, Gayle,它解决了这个确切的情况和许多类似的情况。

关于algorithm - 计算转置矩阵的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57636128/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com