1.数据结构
2.时间复杂度
例1.
语句频度
for( int i=1;i<=2n;i++)
{
y=y+1; n-1
for( int j=0;j<=2n;j++)
{ x++; } (n-1)(2n+1)
}
T(n)=n-1+(n-1)(2n+1)=O(n2)不用在乎其系数和加减
例2. 频度
int i=1; 1
while(i<=n)
{
i=i
∗
\ast
∗ 2; x
}
设算法执行x次,则有2x≤n,即x≤log2n所以i=i*2的频度为log2n
例3.
int x=.0;
for(int i=0;i<=n;i++)
for(int j=i+1;j<=n;j++)
x++;
∑
i
=
0
n
∑
j
=
i
+
1
n
\sum_{i=0}^n\sum_{j=i+1 }^n
∑i=0n∑j=i+1n=
∑
i
=
1
n
\sum_{i=1}^n
∑i=1n(n-1)
=(n-1)(n-2)+…+1
=
n
(
n
−
1
)
2
\frac{n(n-1)}{2}
2n(n−1)
T(n)=O(n2)