先了解一下什么叫数据结构
数据结构:
数据的组织方式,着重于数据之间的关系,研究以下三部分:
- 顺序存储:相邻的逻辑结点存储在相邻的物理存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现
- 链式存储:不要求相邻存储,结点间的逻辑关系是由附加的指针表示
- 索引存储:建立附加的索引标识来表示结点的地址。
- 散列(哈希)存储:根据结点的关键码直接计算出该结点的存储地址。
}
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!)
}
网友评论