给定代码的时间复杂度

发布于 2024-09-15 09:18:48 字数 260 浏览 4 评论 0原文

a[i,j]a[j,i] 交换,得到 j > 的这段代码的时间复杂度是多少? i(转置给定矩阵):

for(i=1;i<=(n-1);i++)
{
    for(j=(i+1);j<=n;j++)
    {
        T=a[i,j];

        a[i,j]=a[j,i];

        a[j,i]=T;
    }
}

What is the time complexity of this code which swap a[i,j] with a[j,i] for j > i (transpose the given matrix):

for(i=1;i<=(n-1);i++)
{
    for(j=(i+1);j<=n;j++)
    {
        T=a[i,j];

        a[i,j]=a[j,i];

        a[j,i]=T;
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

抠脚大汉 2024-09-22 09:18:48

内部循环将工作从 n 减少到 1,实际完成的工作(交换数字)是 O(1),因此:

n 次操作 + (n - 1) 次操作 + (n - 2) 次操作 + ... + 2 次运算 + 1 次运算 = sum(1, n) 运算 = (n * (n + 1)) / 2 = (n2 + n) / 2 = O(n2)

The inner loop does decreasing work from n to 1, and the actual work being done (swapping numbers) is O(1), so:

n operations + (n - 1) operations + (n - 2) operations + ... + 2 operations + 1 operation = sum(1, n) operations = (n * (n + 1)) / 2 = (n2 + n) / 2 = O(n2)

_畞蕅 2024-09-22 09:18:48
for(i=1;i<=(n-1);i++) { 
    for(j=(i+1);j<=n;j++) { 
        T=a[i,j];
        a[i,j]=a[j,i];
        a[j,i]=T; 
    } 
}

时间复杂度为O(n^2)。

for(i=1;i<=(n-1);i++) { 
    for(j=(i+1);j<=n;j++) { 
        T=a[i,j];
        a[i,j]=a[j,i];
        a[j,i]=T; 
    } 
}

The time complexity is O(n^2).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文