* 数据存储结构 * 数据逻辑结构 * 算法数据 (也就是数据对象(数据元素–关系–数据结构))
01、存储结构 { - 顺序存储:相邻的逻辑结点存储在相邻的物理存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现 - 链式存储:不要求相邻存储,结点间的逻辑关系是由附加的指针表示 - 索引存储:建立附加的索引标识来表示结点的地址。 - 散列(哈希)存储:根据结点的关键码直接计算出该结点的存储地址。 }
02、逻辑结构 { - 线性结构:{ 线性表,栈,队列,串 - 非线性结构:{ 树形结构,图形结构,集合结构 }
03、算法 { - 特性:有穷性,确定性,可行性,输入,输出 - 时间复杂度: /** * 分析下面程序段的时间复杂度 */ (1) int i,sum = 0; // (1次) (2) for (i=0;i<n;i++) // (n+1次) (3) sum=sum+i; // (n次) (4) return sum; // (1次) // T(n)=2n+3,且T(n)是n数量级的时间复杂度:(渐进时间复杂度, 只取结果的最高幂):用大O[字母的大写O]表示 T(n)=2n+3~= n 则时间复杂度为O(n) 如:T(n)=3n2+2n+1000=O(n2) 记忆:各种不同数量级对应的值存在着如下关系: O(1) < O(logn) < O(n) < O(n*logn) < O(n2) < O(n3) < O(2n) < O(n!)
}