数据结构与算法
文章平均质量分 85
读书笔记
echo__Moon
这个作者很懒,什么都没留下…
展开
-
《数据结构与算法分析》学习笔记一——算法分析
算法 算法(algorithm)是为求解一个问题需要遵循的、被清楚地指定的简单指令的集合。 数学基础1. 大O表示法: 如果存在正常数 c 和 n0 使得当 N ≥ n0时,T(N) ≤ cf(N),则记为T(N) = O(f(N))。 (描述了T(N)的相对增长率小于等于f(N)的相对增长率。)2. 大Ω表示法: 如果存在正常数 c...原创 2018-08-18 10:42:53 · 841 阅读 · 0 评论 -
《数据结构与算法分析》学习笔记二——表、栈、队列
线性表(List) 线性表的实现有两种标准方法——顺序表(array-based list或sequential list)和链表(linked list)。 顺序表由数组实现,顺序存储大小事先固定,可能浪费大量空间,优点是可以随机访问O(1),但插入和删除为O(n); 链表元素的个数就没有限制,不连续存储,链表的空间需求为O(n),访问元素...原创 2018-08-18 14:02:57 · 242 阅读 · 0 评论 -
《数据结构与算法分析》学习笔记三——树
二叉树 一棵二叉树(binary tree)由结点(node)的有限集合组成,这个集合或者为空(empty),或者由一个根结点(root)以及两棵不相交的二叉树组成,这两棵二叉树分别称为这个根的左子树(left subtree)和右子树(right subtree)。这两棵子树的根称为此二叉树根结点的子结点(children);从一个结点到其两个子结点都有边(edge)相连,这...原创 2018-08-19 13:17:58 · 352 阅读 · 0 评论 -
《数据结构与算法分析》学习笔记四——散列表(哈希表)、优先队列(堆)
哈希表 散列(hash)是以常数平均时间复杂度进行插入,删除和查找的继续,但不支持排序操作。 每个关键字被映射到从0到TableSize-1范围中的某个数,并放到适当的单元中,这个映射就叫做散列函数(hash function),理想情况下不同关键字映射到不同单元,但由于单元有限,因此要寻找散列函数在单元间均匀地分配关键字。当两个关键字散列映射到同一个值的时候...原创 2018-08-21 16:35:10 · 676 阅读 · 0 评论 -
《数据结构与算法分析》学习笔记五——排序
整个排序能够在主存中完成,元素个数相对较小(小于10^6),称为内部排序,若不能在主存中完成而必须在磁盘或磁带上完成的排序则为外部排序。插入排序 由N-1趟排序组成,对于P = 1到P=N-1趟,插入顺序保证从位置0到P上的元素为已排序状态。void insertSort(vector<int>& a){ int i, j;...原创 2018-08-21 21:23:42 · 387 阅读 · 0 评论