摘要:
Stack的常用基本操作: s.push() // 压栈 s.emplace() // 插入,相当于push(目前掌握的唯一区别是emplace可以自行调用构造函数,push不行) s.empty() // 判断栈空 s.top() // 访问栈顶元素 s.pop() // 退栈 s.size() // 记录栈大小 /*** * stack的基本操作 * Jan 1 2019 */ ... 阅读全文
摘要:
1 /*** 2 * vector 基础api复习 3 * 8 AUG 2018 4 */ 5 6 #include 7 #include 8 using namespace std; 9 10 // 打印vec向量 11 void print(vector vec, int index) 12 { 13 std::cout vec0(10, 1); ... 阅读全文
摘要:
1 /*** 2 * string 基础api复习 3 * 8 AUG 2018 4 */ 5 6 #include 7 #include 8 using namespace std; 9 10 void print(string str, int index) 11 { 12 std::cout << "str" << index... 阅读全文
摘要:
易被忽略的知识点之 各种时间复杂度和空间复杂度 1- 顺序表和单链表常考的基本操作: 时间复杂度全O(n),特殊的一般会放在查找里考 2- 串中KMP时间复杂度O(m+n) 朴素模式匹配 O(m*n) 3- 图的性能分析 4- 查找的性能分析 顺序查找:O(n) ASLsuss = (n+1)/2 阅读全文
摘要:
Chapter 6 排序 1- 直接插入排序 O(n2) O(1) 2- 折半插入排序 O(n2) O(1) 适合关键字较多 3- 希尔排序O(nlogn) O(1) 又名,缩小增量排序 4- 冒泡排序O(n2) O(1) 一趟排序后一个关键字到达最终位置 5- 快速排序O(nlogn) O(nlo 阅读全文
摘要:
Chapter 5 查找 1- 顺序查找法 O(n) 2- 折半查找O(logn) :二分查找 要求:关键字有序 过程: 判定树:叶子结点为方框,代表不成功的结点。 3- 分块查找:索引顺序查找 ASL = ASL1+ASL2 4- 二叉排序树(BST) 特点:左<根<右 5- 平衡二叉树(AVL) 阅读全文
摘要:
Chapter 4 图 . 1- 图的存储结构 无向图:对称 有向图:…… 2- 图的遍历 1 深度优先搜索(DFS) 类似于二叉树的先序遍历 2 广度优先搜索(BFS) 类似于二叉树的层序遍历 3- 最小(代价)生成树(针对无向图)MST 1 Prim算法 O(|V2|) 只与顶点数有关,与边无关 阅读全文
摘要:
Chapter 3 树与二叉树 1- 二叉树 主要性质: 1 叶子结点数 = 度为2的结点数 + 1 2 二叉树第i层上最多有 (i≥1)个结点 3 深度为k的二叉树最多有 个结点 2- 二叉树的链式存储结构&&遍历 1 链式存储结构 2 先序 3 中序 4 后序 3- 线索二叉树 4- 树、二叉树 阅读全文