数据结构与算法(一)
2016-04-09 12:19
211 查看
一 1 逻辑结构:
a : 集合结构 数据元素除了同属于一个集合外,它们之间没有其他关系
b : 线性结构 数据元素之间一对一的关系
c : 树形结构 数据元素之间存在一种一对多的层次关系
d : 图形结构 数据元素之间是多对多的关系
2 物理结构
a : 顺序存储结构 是把数据结构存放在地址连续的存储单元里,数据间的逻辑关系与物理关系是一致的
b : 链式存储结构 是把数据结构存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的
二 算法大O推导
1 : 用常数1代表所有加法常数(执行时间恒定)
2 : 在修改后的运行次数函数中,只保留最高阶层
3 : 如果最高阶层存在且不是1,则去除与这个项相乘的常数
a 常数阶
int n=100,sum=0; //一次
sum = (1+n)*n/2; //一次
时间复杂度O(1)
b 线性阶
for(i=0;i<n;i++){/*执行时间复杂度为O(1)的语句*/} //n次
时间复杂度O(n)
c 对数阶
int count=1;
while(count<n){ count = count*2 }
时间复杂度O(logn)
d 平方阶
for(i=0;i<n;i++){ //n次
for(j=0;j<n;j++){//n次
}
}
时间复杂度O(n^2)
常见时间复杂度 O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
a : 集合结构 数据元素除了同属于一个集合外,它们之间没有其他关系
b : 线性结构 数据元素之间一对一的关系
c : 树形结构 数据元素之间存在一种一对多的层次关系
d : 图形结构 数据元素之间是多对多的关系
2 物理结构
a : 顺序存储结构 是把数据结构存放在地址连续的存储单元里,数据间的逻辑关系与物理关系是一致的
b : 链式存储结构 是把数据结构存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的
二 算法大O推导
1 : 用常数1代表所有加法常数(执行时间恒定)
2 : 在修改后的运行次数函数中,只保留最高阶层
3 : 如果最高阶层存在且不是1,则去除与这个项相乘的常数
a 常数阶
int n=100,sum=0; //一次
sum = (1+n)*n/2; //一次
时间复杂度O(1)
b 线性阶
for(i=0;i<n;i++){/*执行时间复杂度为O(1)的语句*/} //n次
时间复杂度O(n)
c 对数阶
int count=1;
while(count<n){ count = count*2 }
时间复杂度O(logn)
d 平方阶
for(i=0;i<n;i++){ //n次
for(j=0;j<n;j++){//n次
}
}
时间复杂度O(n^2)
常见时间复杂度 O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
相关文章推荐
- 探索HashMap实现原理及其在jdk8数据结构的改进
- 重学数据结构系列之——图的储存
- 时间复杂度和空间复杂度[数据结构]
- 数据结构--二叉树的线索化
- 【数据结构】FibonacciHeap 斐波那契堆(更新时间:2016-04-07)
- js--数据结构--树
- 数据结构-线性表的顺序结构
- 数据结构杂谈(一)浅谈基本排序算法
- PostgreSQL异步客户端(并模拟redis 数据结构)
- [Java8 Collection源码+算法+数据结构]-List(二)
- 数据结构——树
- 数据结构(线段树):BZOJ 1018: [SHOI2008]堵塞的交通traffic
- 数据结构实用概念
- 【学习笔记----数据结构07-队列】
- 【学习笔记----数据结构06-栈的应用】
- 数据结构-堆
- 【学习笔记----数据结构05-栈与队列】
- 【学习笔记----数据结构04-单循环链表】
- 位运算-Number of 1 Bits(求一个十进制数字,它的二进制表示中有多少个 1(bit))
- 【学习笔记----数据结构03--线性链表】