Hello World!

如何使用 VSCode + SSH 调试 NASM 程序

最近在做软院 OS 的祖传实验,课程要求编写 nasm 程序。我的开发环境是远程 Linux 主机,系统为 Ubuntu 20.04 64bit,并在 Windows 上使用 VSCode SSH 连接主机。然而,当我试图使用 VSCode 调试的时候,发现网络上几乎……

Static Analysis 01-Introduction

本文参考:『南京大学-软件分析』课程笔记 - Theoyu重点What are the differences between static analysis and (dynamic) testing?Understand soundness, completeness, false negati

使用 RSSHub + Tiny Tiny RSS 搭建属于自己的 RSS 服务

最近了解到 RSS 这种古老的信息聚合方式。虽然现在互联网环境早已被移动 APP 分割成孤岛,RSS 也已然没落,不过秉持着传承互联网分享精神的初衷,本人决定尝试一下使用 RSS 来获取内容与信息。为了能够得到最好的体验,我决定自建 RSSHub 并 使用 Tiny Tiny RSS 来在服务器上管理信息来源,以便做到多设备同步 RSS 源。(再次感叹,有个服务器真的能做很多事情)

Algorithms, Part I 8-ElementarySymbolTables

8-ElementarySymbolTables符号表以 Key-value pair 的形式存储数据插入 Key-value给定 Key 搜索对应的 valueAPIget() 如果键不存在则返回 nullput() 方法会用新值覆盖旧值delete() 只需要将值设为 null 就行Key 特性

Algorithms, Part I 7-PriorityQuenes

7-PriorityQueues优先队列 PQ API 和基本实现和队列 Quene 类似,不同的地方在于我们希望可以移除队列中的最大(最小)的元素。注意泛型元素必须满足 Comparable基本实现无序数组,删除时遍历寻找最大有序数组,插入时完成排序目标,插入、删除的操作复杂度都是对数级别的二叉堆

Algorithms, Part I 6-Quicksort

6-Quicksort快速排序快排是20世纪十大算法之一。实际应用中快排的综合速度最快。基本思想对数组进行 Suffle对于某个给定的元素,将所有比其小的放在它左边,比其大的放在它右边对左右两部分分别进行递归排序代码实现i从左往右找到第一个大于基准元素的j从右往左找到第一个小于基准元素的交换i和j直

Algorithms, Part I 5-Mergesort

5-Mergesort插入排序基本做法将数组分成两半递归地对这两部分排序将已排好序的两部分合并合并的代码实现 // stably merge a[lo .. mid] with a[mid+1 ..hi] using aux[lo .. hi] private static void m

Algorithms, Part I 4-Elementary sorts

4-Elementary sorts引言回调函数为了能够对不同的数据类型进行排序(Double, String, File等)比较时调用compareTo()方法交换次数反对称:若$a \leq b$且$b \leq a$ 则 $a = b$传递:若$a \leq b$且$b \leq c$ 则 $

Algorithms, Part I 3-Stacks And Queues

3-Stacks And Queues可变长数组 Resizing arrays为了实现变长数组,同时尽可能降低增删元素的时间复杂度,我们需要对数组的大小做动态的调整。以Stack实现中的push 和 pop 方法为例:Push如果数组元素已满,那么我们创建一个长度为原来数组长两倍的数组,并把所有的

Hello World!