《算法(第四版)》笔记(1)

一、基础

 

1.揹包,队列,栈

揹包:一种不支持删除元素的集合数据类型,迭代的顺序不确定

先进先出队列:一种基于先进先出策略的集合类型

下压栈:一种基于后进先出策略的集合类型

 

2.集合数据类型的体现

定容栈、泛型、迭代

 

3.链表

链表是一种递归的数据结构,它或者为空(null),或者是指向一个结点(node)的引用,该结点含有一个泛型的元素和一个指向另一条链表的引用。链表表示的是一列元素。

链表(首尾)增删快:将原结点的引用指向新结点,删除结点,只需将引用指向自身,故链表的增删速度与其长度无关。

实现任意插入和删除应该使用双向链表。

链表的遍历:初始化索引变量,通过.next访问到引用为null为止。

for(Node x=first; x!=null ; x=x.next)

 

4.算法分析

描述              增长的数量级             典型代码                  说明                    举例

 

常数级别              1                          a=b+c                         普通语句              相加

对数级别         logN                        二分查找                     二分策略       二分查找

线性级别         N                             for()if                     循环              找出最大元素

线性对数级别  NlogN                                                        分治              归并排序

平方级别         N^2                        for for if                       双层循环       检查所有元素对

立方级别        N^3                                                           三层循环    检查所有三元组

指数级别        2^N                                                           穷举查找    检查所有子集

 

点赞