ZingLix Blog

凡心所向,素履以往

数据结构 - 优先队列

Data Structures - Priority Queue

优先队列(Priority Queue)是一种先进先出的数据结构,其中每个元素被赋予优先级,其中优先级最高的最先被删除。其中优先级若以值来代表,值越大优先级越高,这种被称为最大优先队列。同理可得最小优先队列,本文以最大为例。 由于最大堆中根节点值最大,而优先队列要找的是值最大的元素,所以优先队列可以用堆来实现。 基本操作&原型 由于用最大堆来实现,所以由堆继承而得,关于堆的实现...

二叉堆及堆排序

Binary Heap & Heap Sort

二叉堆,简称堆(Heap),可以被看成近似的完全二叉树,除了最底层外这棵树是充满的。 如图所示,从顶层元素开始标号,除了底层外都是充满的。 最大(最小)堆 最大(最小)堆的性质为:对于任何节点,该节点的值必须大(小)于其子节点的值。上图所示即为最大堆。 本文中以最大堆为例。 基本操作&原型 由于堆是一个完全二叉树,如果我们给其编号,那么每一个节点的左右子节点编号都可以...

算法 - 线性时间排序

Algorithm - External Sort

之前在这我们已经讨论过快排、归并等排序方法,这些方法都具有一个特点:各元素间顺序依赖于比较,所以这些算法都被称为比较排序,对于这类方法,最优的下界为O(n lgn)。然而我们在这讨论为三种线性时间复杂度的排序方法:计数排序(Counting Sort)、基数排序(Radix Sort)和桶排序(Bucket Sort)。 计数排序 计数排序的基本思想为确定每个元素小于它的数量,就可以确定这...

多说停运后评论又一替代解决方案——Gitment

之前评论一直用的多说,感觉十分不错,支持国内基本所有社交账户,但一切来得太突然,估计因为找不到好的变现手段,运营不下去了。 但是没有评论系统感觉还蛮僵硬的,所以还是得找个替代手段。分别对比了Disqus,友言,畅言,网易云跟帖等等,感觉不是被墙用不了,要不就是这个评论框实在是有点难看,而且很担心哪个变成下一个多说。但最后发现了Gitment这一解决方案,而且一眼我就决定就是他了。 先来说...

数据结构 - 堆栈

Data Structures - Stack

基本概念 堆栈(stack)是一种特殊的线性数据结构,只能够在一端(即栈顶)进行,采用后进先出原则(LIFO, Last In First Out),基本操作有加入数据(push)和输出数据(pop)两种运算。 原型声明 除了构造和析构函数外,根据定义,最主要的即为Pop和Push两个操作,在此基础上加上返回栈顶元素(Top),判断是否为空栈(IsEmpty)和将栈置空(MakeEm...

算法 - 内部排序

Algorithm - Sort

概述 排序分为内部排序和外部排序两种,本文讨论内部排序,即将数据存放于内存中进行排序的算法,分别为冒泡排序、插入排序、归并排序和快速排序。关于外部排序,在这进行了讨论,本文不再赘述。 冒泡排序 冒泡排序应该是所以接触算法的人所第一个了解的排序算法,之所以如此正因为其易懂。 整体思路就是两两比较,将较大的数据往后移动,所以每一次循环,最后一个必定是最大的,即已经完成排序,如下图所示。 ...

数据结构 - 二叉搜索树

Data Structures - Binary Search Tree

基本概念-树 根据Wiki的定义,树(Tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。有以下几个特点: 每个节点有零个或多个子节点; 没有父节点的节点称为根节点; 每一个非根节点有且只有一个父节点; 除了根节点外,每个子节点可以分为多个不相交的子树;...

数据结构 - 链表

Data Structures - List

什么是链表 百度百科定义:一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。 说白了其实就是一个结构,里面存有数据,再加上一个指向下一个结构的指针。 此图为不具有头结点的链表形式。 此图为具有头节点的链表形式。区别仅在于第一个结点是否存有信息,这里采用具有头节点的...

Hello Blog

Yeah, I have my own blog.

前言 折腾了两天,这个博客终于建立了。 这两天倒腾GitHub想找个地方把自己这四年里做的作品集合一下,看到了GitHub Pages 和 Jekyll 搭一个博客的方案,感觉还蛮不错的虽然自己不怎么会写文章, 但头脑一热买了一个域名,我能怎么办呢?我也很绝望啊。钱也花了,只好把这网站搭起来了。 但你还真别说,搭这个博客还蛮方便的,这里得感谢下: 搭建独立博客教程 一个出色...