摘要:
What is a heap? 首先介绍优先队列: Heap(堆)是对优先队列的一种实现 每个元素都有对应的key值,且对于大顶堆(Max Heap)而言,其每个元素的key值都 ≥ 子元素的key值 堆可以可视化为一棵完全二叉树: 堆对应的树具有如下性质:(这里层数从0开始) 别忘了之前讲过的完全 阅读全文
摘要:
Insertion sort Attempt#1 每次将元素A[j]插入它之前的有序序列A[1 .. j-1]中,插入方式是与前一个相邻元素两两比较并交换直到到达正确位置 Complexity 显然复杂度主要来自于 compare 和 swap : 平均情况下,比较和交换均需要 Θ(n2),虽然可以 阅读全文
摘要:
PeakFinding Introduce Efficiency 当要面临的数据集十分庞大时,关注算法效率是非常有必要的 Scalability 可伸缩性是指算法能够在尽可能多的不同输入数据下正确运行,应该也可以理解为健壮性 Classic Data Structures 在6.006中我们将学习一 阅读全文
摘要:
二叉树的遍历 前序、后序、中序遍历 递归实现: https://github.com/AndyLeezCode/ClionProjects/tree/master/hello 层序遍历 层序遍历 每访问一个结点,将其孩子结点入队 根据遍历序列构造二叉树 需要注意的是,某种遍历序列相同的两棵二叉树不一 阅读全文
摘要:
今天开始学习一种新的逻辑结构 —— 树 树的基本概念 树的属性描述 树 V.S 森林 小结 常考性质 结点数=总度数+1 度为m的树 v.s m叉树 小结 二叉树 基本概念 几个特殊的二叉树 满二叉树 和 完全二叉树 二叉排序树 平衡二叉树 小结 二叉树的常考性质 完全二叉树的常考性质 因为完全二叉 阅读全文
摘要:
KMP算法 对KMP算法的优化,在 next 数组基础上稍加更改得到 nextval 数组 小结 阅读全文
摘要:
Linux是多用户的操作系统 服务器由多个运维人员管理 用户分为普通用户和root用户(超级管理员) 日常维护工作以普通用户身份即可完成,若要使用系统的所有权限,则需要使用root 用户与用户组 用户操作 用户的切换使用 su username (switch user)(su root表示切换到管 阅读全文
摘要:
Linux入门 Linux首先是一个操作系统,类似Windows和Mac OS,不同的地方在于后两者面向家用,我们可以将它们称为客户端操作系统 而Linux多运行在服务器端,所以也称为服务器端操作系统 由于Linux没有可视化图形界面,我们就要通过在终端输入命令行来操作 因此,学习Linux其实就像 阅读全文
摘要:
Stack Don't forget: 学习一个数据结构总是从三要素出发,当我们给出这个数据结构的逻辑结构并定义好它的基本运算时,我们就算是定义了这个数据结构(同时也定义了这样一个ADT),最后当我们确定了它的实现方式,即存储结构时,我们就实现了这个数据结构 定义 基本操作 小结 接下来讨论栈的存储 阅读全文