review_ds
数据结构三大部分:线性结构,非线性结构,排序查找。
算法空间复杂度:算法在运行过程中临时占用的存储空间大小,即包括局部变量所占用的存储空间和系统使用递归所占用的堆栈空间。
算法 时间复杂度:
如果算法没有循环,算法基本操作的执行频率与问题规模n无关,记做O(1),叫做常数阶。
如果只有一个循环,记做O(n), 线性阶。
常用的还有平方阶,立方阶,对数阶O(log2n).
阶乘: 5!= 1*2*3*4*5 = 120.
Floor:取下整。
Ceiling:取上整。
对数:a的b次方=c,那么logac = b。
对数常用地方:
- 对象编码,表示n个编码需要多少位,即log2n=位数。
- 用于把问题分解成更小问题,折半查找一个长度为n的线性表,一共需要log2n次。
递归:通过一系列的自身调用,达到某一终止条件后,再按照调用路线逐步返回。
public static long fact(int n){ if(n <=1){ return 1; }else{ return n* fact(n-1); } }
接口:接口的目的是为了实现多继承,如果一个类想仅仅通过继承另外一个类来实现多继承是不可能的,这时就需要接口。
.net常用接口:
IComparable
IEnumerable
IEnumerator
ICollection
IDictionary
IList
这几个接口的详细使用。
非线性结构:
树的特征:一对多(一个父,一个或多个子)。