5(2)与数据元素本身的形式、内容、相对位置、个数无关的是数据的 逻辑结构 ;
(4)数据元素是数据的基本单位;数据项是数据的最小单位;数据结构是带有结构的各数据元素的集合。
(5)算法的时间复杂度取决于 问题的规模 和 待处理数据的初态;
6 试分析下列各算法的时间复杂度
(1)
x=90; y=100;
while(y>0)
if(x>100)
{x=x-10;y--}
else x++;
我的答案:O(y);
正确答案:O(1);
ps:因为y的大小已经确定,所以y是常量。
(4)
i=1;
while(i<=n) //(1)
i=i*3;
我的答案:O(n);
正确答案:O(log(3)n);
ps:原意是忽视了i=i*3; 设(1)式的计算次数为x,可得i*3^x<=n, 即得其语句频度x为log(3)n/i,所以得
O(log(3)n);
(5)
x=0;
for(i=1; i<n; i++)
for(j=1; j<n-1; j++)
x++;
我的答案:O(n)
正确答案:O(n^2)
ps:x++;的执行次数为(n-1)+(n-2)+(n-3)+...+2+1=n(n-1)/2,所以得O(n^2);
(6)
x=n; //n>1
y=0;
while(x>=(y+1)*(y+1))
y++;
我的答案:O(log(y+1)2)
正确答案:O(√n)
ps:x等于n值,所以n的值大于等于(y+1)^2的时候,while语句执行的次数就是y的取值(因为y的初值为0);所以解方程 n=(y+1)^2,得y=√n+1,所以得O(√n)