互评:数据结构、算法及线性表总结
一.思维导图 二 . 重要概念的笔记 1.循环队列 front=(front+1)%maxsize rear=(rear+1)%maxsize; 队列元素个数=(front-rear+maxsize)%maxsize; 2.随机存储取元素地址 position=a[0]+(i-1)*sizeof(Elementype); 3.递归算法时间复杂度 思路:列出T(k)的函数 例1 int fact(int n) { if(n<=1) return 1; else return n*fact(n-1); } T(k)=1 当k=1 T(k)=1+T(k-1) 当 k≠1 则: T(n)=1+T(n-1) =1+1+T(n-2) =1+1+....+T(1) =n =O(n) 例2 void mergesort(int a[],int i,int j){ int m; m=(i+j)/2; if(i!=j){ mergesort(a,i,m); mergesort(a,m+1,j); merge(a,i,j,m); } } o(nlg2n) T(k)=O(1) 当k=1 T(k)=2T(k/2)+O(k) 当 k≠1 T(N)=2T(N/2)+N=2(2T((n/4)+N/2)+N=......=2^k(T(n/2^K))+kn 当N=2^k 即k=log2 n T(N)=n+nlog2n