- 学习笔记:
时间复杂度: 研究算法运行的快不快的指标。
时间复杂度不是指一个算法运行的时间长短。
进行时间复杂度分析时,忽略所有常数项系数,我们只保留多项式中的最高项。
比如:T(n)=cn(n-1)/2 则时间复杂度为T(n)=O(n^2)
时间复杂度关注的是数量级,而非具体的数值。
若一个算法时间复杂度为T(n)=O(n),则叫做线性算法,若某一算法的时间复杂度比线性算法还低,就可以称为亚线性算法。比如O(logn),O(loglogn)以及O(1).
平均复杂度:可以说是所有情况下复杂度的期望值。
基础数据结构——线性表
线性表是由相同类型的数据按照一定的顺序排成的序列。
具体线性表有链表、数组线性表、栈(形象比喻:从一个书箱中拿书)和队列(形象比喻:车站排队买票)。
- 大数据算法
亚线性算法有种抽样的感觉,不访问全部数据,而是选择部分数据代替全部数据。
大数据算法中解决问题的重要思路就是近似。
近似是亚线性算法的思想。
水库抽样
水库抽样问题的要求:每一刻所取得样本,就是前面已经“流过”的全部数据的均匀抽样。
数据流模型:
(1)数据流通常来自某个域中元素的序列。
(2)数据量是远大于内存容量的。
(3)处理每一个数据要快速,因为数据会快速地源源不断的到来。
数据概要:概括数据的数据结构叫作数据概要。
图论相关知识
有向图:边是有方向的。
无向图:边是没有方向的。
与顶点相连的边的数量叫作度数。
对于判定问题的严格精确解,我们能给出严格的是或者否。而对于判定问题的近似算法,只要给出“是”和“差的很远”这两种情况就可以 了。
相对于内存来讲,像磁盘、磁带这样的存储介质一般称为外存,所以磁盘算法也叫做外存算法。
硬盘的一个重要特点就是它以块为单位进行访问。