详细的一笔
第一章 绪论
1.(第14页,第(18)题)
确定划线语句的执行次数,计算它们的渐近时间复杂度。 (1) i=1; k=0; do {
k=k+10*i; i++; } while(i<=n-1)
划线语句的执行次数为 n-1(n>=2),n=1时执行1次 。 (2)i=1; x=0; do{
x++; i=2*i; } while (i
划线语句的执行次数为 log2n 。 (3) for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) for (int k=1;k<=j;k++) x++;
划线语句的执行次数为n(n+1)(n+2)/6 。 (4)x=n;y=0;
while(x>=(y+1)*(y+1)) y++; 划线语句的执行次数为 n 。
第二章 两种基本的数据结构
2-4.
Loc(A[i][j][k])=134+(i*n*p+j*p+k)*2
2-9.第34页 习题(2).9
void Invert(T elements[], int length) {//length数组长度 // elements[]为需要逆序的数组 T e;
for (int i=1;i<=length/2;i++) {
e=elements[i-1];
elements[i-1]=elements[length-i]; elements[length-i]=e; } }
2-12.第34页习题(12)
void pInvert(Node* first) {
Node *p=first,*q; first=NULL; while (p){
q=p->Link; p->Link=first;