-1
这是什么代码交换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;
}
}
这是什么代码交换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;
}
}
内环确实减少从n个工作为1,并且实际完成的工作(交换数字)为O(1),因此:
n操作+(n-1)操作+(n-2)操作+ ... + 2操作+1操作= sum(1 ,n)操作=(n *(n + 1))/ 2 =(n + n)/ 2 = O(n )
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)。
你觉得呢?你是如何得出答案的? – 2010-08-23 08:02:44
这是你的功课吗? – Calmarius 2010-08-23 08:05:26
一个不错的和容易的教程 - http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=complexity1 – DumbCoder 2010-08-23 08:11:03