摘要訊息 : The article guide of Jonny'Blog.

0. 前言

Jonny'Blog 目前已經發表了不少數量的文章, 但是由於 WordPress 並沒有一個綜合性的頁面來展示所有文章和文章簡介, 而大家無目標地尋找文章也比較麻煩, 因此 Jonny'Blog 製作了本篇文章導覽供大家參考. 大家可以根據文章導覽快速找到自己想要閱讀的文章.

文章導覽具體分類中呈現的文章將以發表時間順序, 從較早到最近進行排序. 第一節中幾乎所有未歸檔文章都會有詳細介紹, 第二節中展現了不帶有介紹的所有文章. 第一節中的內容較為緊湊, 第二節中的內容較為清爽. 如果閣下想以時間順序閱覽 Jonny'Blog 中的文章, 請訪問年度歸檔 (https://jonny.vip/archives-page/).

1. 介紹

1.1 電腦科學系列

電腦科學系列文章列表 : https://jonny.vip/category/computer-science/.

1.1.1 程式設計語言系列

程式設計語言系列文章列表 : https://jonny.vip/category/computer-science/programming-language/. 目前, 程式設計語言系列文章除了 C++ 之外, 還沒有引入其它程式設計語言的文章.

1.1.1.1 C++ 系列

C++ 系列文章列表 : https://jonny.vip/category/computer-science/programming-language/cplusplus/. 這個系列所有的文章預設都是以 C++ 11 為基礎, 涉及 C++ 98/03 之處會額外提及.

1.1.2 資料結構系列

資料結構系列文章列表 : https://jonny.vip/tag/資料結構/.

  • 效能分析系列 : 這個系列沒有設立單獨的文章列表;
    • 《程式碼效能分析》: 介紹了如何對程式碼的時間複雜度和空間複雜度進行精確分析和實驗分析, 以及相同功能不同實作方法的程式碼之間如何進行比較;
    • 《漸近分析基礎》: 介紹了相同功能但不同實作方法程式時間複雜度和空間複雜度表達式不一致的情況下, 如何從漸近分析的角度給出比較方法. 這篇文章引入了大 O 記法, 小 o 記法, Θ 記法和 Ω 記法的實用定義和精確定義, 考慮了多變數的情況, 並給出了這些記法的性質以及一些結論. 最後結合漸近分析的角度, 給出了相同功能不同實作的演算法的選擇方案.
  • 《【資料結構】向量 (順序表)》: 介紹了程式設計中最常用的線性結構向量的定義, 也就是動態陣列. 除此之外, 對向量的插入, 移除, 搜尋, 字典比較和旋轉操作進行了介紹. 其中, 旋轉操作給出了四種可能的演算法. 最後給出了向量的 C++ 實作參考;
  • 《【資料結構】前向連結串列》: 對前向連結串列的定義, 插入, 移除, 搜尋, 字典比較和旋轉進行了介紹. 另外, 還給出和前向連結串列有關的演算法, 包括大小未知情況下一邊尋訪移除第 k 個節點, 合併 k 個有序的前向連結串列, k 個一組翻轉前向連結串列, 移除有序前向連結串列存在重複的元素, 以某個值為基礎分隔前向連結串列, 環狀前向連結串列的判斷, 分岔路口的判斷, 使用前向連結串列儲存數字後的計算, 分隔為 k 個前向連結串列, 前向連結串列專用的合併排序法. 最後給出了前向連結串列的 C++ 實作參考;
  • 《【資料結構】連結串列》: 對連結串列的定義, 插入, 移除, 搜尋, 字典比較和旋轉進行了介紹, 最後給出了連結串列的 C++ 實作參考;
  • 《【資料結構】雙向佇列 (雙端佇列)》: 對雙向佇列的定義, 空間佈局, 疊代器, 插入, 移除, 搜尋, 字典比較和旋轉進行了介紹, 並和向量進行了結構上的對比. 最後給出了雙向佇列的 C++ 實作參考;
  • 《【資料結構】堆疊》: 對堆疊的定義, 插入和移除進行了介紹, 並介紹了和堆疊有關的遞迴替換方法, 括號匹配問題, 開關盒佈線問題和逆波蘭表示法. 同時, 還介紹了堆疊的擴展結構, 即雙向堆疊 (雙邊堆疊). 最後給出了堆疊的 C++ 實作參考;
  • 《【資料結構】佇列》: 對佇列的定義, 插入和移除進行了介紹, 並介紹了佇列在像素分割問題上的應用. 同時還介紹了佇列的迴圈佇列 (循環佇列) 實作方法. 最後給出了佇列的 C++ 實作參考;
  • 《【資料結構】陣列》: 對陣列的定義, 各種形式進行了介紹, 並對比了向量. 最後給出了陣列的 C++ 實作參考;
  • 《【演算法】列車重排》: 使用堆疊或者佇列來解決列車重排問題 : 一列貨運列車有 n 節車廂, 第 i 節車廂停靠在第 i 個站點. 假設列車在裝載的時候, 不一定按照順序進行裝載 (例如裝載順序為 581742963, 3 為車頭). 在列車到達終點站之前需要經過一個緩衝站點, 緩衝站點中有 k 個緩衝軌道. 當列車駛出緩衝站點之後, 要求所有車廂有序裝載 (即對於 581742963, 要求最終的順序為 123456789 或者 987654321).
  • 《【資料結構】跳躍列表》: 介紹了跳躍列表的定義, 級產生的方法, 插入和移除. 證明了跳躍列表是一種搜尋時間複雜度為機率 \Theta(\log {n}) 的前項連結串列結構. 最後給出了如何仿照 C++ 標準樣板程式庫容器, 用 C++ 實作一個跳躍列表, 並且給出了 C++ 的實作參考;
  • 《【資料結構】雜湊表》: 介紹了雜湊函數的定義, 一些常用的雜湊函數, 雜湊表的定義, 雜湊表的插入刪除和搜尋操作和雜湊表的載荷因素. 最後給出了雜湊表的 C++ 實作參考;
  • 《【資料結構】樹》: 介紹了樹的定義以及和樹有關的概念, 給出了樹的層次尋訪, 先序尋訪和後序尋訪方案. 最後給出了樹的 C++ 實作參考;
  • 《【資料結構】樹——二元樹》: 介紹了樹結構中最重要的二元樹的定義, 性質, 儲存方式, 尋訪和旋轉. 最後給出了二元樹的 C++ 實作參考;
  • 《【資料結構與演算法】堆積, 堆積排序和優先佇列》: 介紹了堆積的定義, 插入, 移除和初始化, 根據堆積的移除引入了堆積排序法. 同時, 還介紹了另外一種以堆積為基礎的資料結構, 優先佇列. 最後給出了堆積和優先佇列的 C++ 實作參考;
  • 《【資料結構】樹——左偏樹》: 介紹左偏樹的定義, 性質, 合併, 插入, 移除和初始化. 最後給出了左偏樹的 C++ 實作參考;
  • 《【資料結構】樹——贏者樹》: 介紹了贏者樹的定義, 贏者的選定, 選手的更換, 插入, 移除, 儲存方式. 同時還介紹了輸者樹和記憶體不足情況下如何借助贏者樹進行排序. 最後給出了贏者樹的 C++ 實作參考;
  • 《【資料結構】樹——二元搜尋樹》: 介紹了二元搜尋樹的定義, 性質, 搜尋, 插入和移除. 同時還給出和前向連結串列有關的演算法, 包括生成不同的二元搜尋樹, 任意兩個交換節點後的二元搜尋樹的復原, 生成高度平衡的二元搜尋樹, 根據二元搜尋樹的性質來尋找兩個節點最近公共祖先, 根據尋訪結果判斷二元搜尋樹, 根據二元搜尋樹的性質來尋找最接近某個值的 k 個節點, 根據二元搜尋樹的性質來尋找節點最多的子樹, 根據二元搜尋樹的性質來尋找出現頻率最高的元素. 最後給出了二元搜尋樹的 C++ 實作參考;
  • 《【資料結構】樹——AVL 樹》: 介紹了 AVL 樹的定義, 性質, 插入和移除操作, 最後給出了 AVL 樹的 C++ 實作參考;
  • 《【資料結構】樹——伸展樹》: 介紹了伸展樹的定義, 伸展, 搜尋, 插入和移除操作, 最後給出了伸展樹的 C++ 實作參考;
  • 《【資料結構】樹——紅-黑樹 (紅黑樹)》: 介紹了 AVL 樹的定義, 性質, 搜尋, 插入和移除操作, 並在紅黑樹和 AVL 樹之間作了比較. 最後給出了紅黑樹的 C++ 實作參考;
  • 《【資料結構】圖》: 介紹了圖的定義, 並且介紹了圖中的一些著名演算法, 包括廣度優先搜尋, 深度優先搜尋, 頂點存在性判定, 路徑存在性判定, 連同性判定, 迴路判定, 生成樹的產生, 二部圖的判定, 拓撲排序, 二部圖的最小覆蓋, 最小生成樹演算法 (Kruskal 演算法, Prim 演算法和 Borůvka 演算法), 最短路徑演算法 (Dijkstra 演算法, Bellman-Ford 演算法和 Floyd-Warshall 演算法), 尋找有向圖中強連通子圖的 Kosaraju 演算法.

1.1.3 計算理論系列

計算理論系列文章列表 : https://jonny.vip/category/computer-science/theory-of-computation/.

1.1.3.1 演算法系列

演算法系列文章列表 : https://jonny.vip/category/computer-science/theory-of-computation/algorithm/.

1.1.4 人工智慧系列

人工智慧系列文章列表 : https://jonny.vip/category/computer-science/artificial-intelligence/.

  • 《機器學習筆記》: 介紹了機器學習中監督學習, Bayes 決策理論, 參數方法, 多變數方法, 維度化約, 聚類分析, 非參數方法, 決策樹, 線性判別式, 多層感知器, 局部模型, 核機器, 貝氏網絡, 馬可夫模型, 貝葉斯推斷, 組合多學習器和強化學習. 文章中對所有方法都給出了數學推導.

1.2 數學系列

數學系列文章列表 : https://jonny.vip/category/mathematics/.

1.2.1 機率論系列

機率論系列文章列表 : https://jonny.vip/category/mathematics/probability/.

1.2.2 分析系列

分析系列文章列表 : https://jonny.vip/category/mathematics/analysis/.

1.2.3 代數系列

代數系列文章列表 : https://jonny.vip/category/mathematics/algebra/.

1.3 Skill 系列

該系列主要介紹一些和伺服器維護有關的技巧. Skill 系列文章列表 : https://jonny.vip/category/skill/.

1.4 Archive 系列

該系列所有文章都是過時的歸檔文章, 不再享受更新, 文章中可能存在過時甚至錯誤的內容. 這些文章不會在主頁中顯示, 只能被搜尋.

1.5 特殊頁面

特殊頁面沒有專用的頁面列表.

2. 無介紹

2.1 電腦科學系列

電腦科學系列文章列表 : https://jonny.vip/category/computer-science/.

2.1.1 程式設計語言系列

程式設計語言系列文章列表 : https://jonny.vip/category/computer-science/programming-language/. 目前, 程式設計語言系列文章除了 C++ 之外, 還沒有引入其它程式設計語言的文章.

2.1.1.1 C++ 系列

C++ 系列文章列表 : https://jonny.vip/category/computer-science/programming-language/cplusplus/. 這個系列所有的文章預設都是以 C++ 11 為基礎, 涉及 C++ 98/03 之處會額外提及.

2.1.2 資料結構系列

資料結構系列文章列表 : https://jonny.vip/tag/資料結構/.

2.1.3 計算理論系列

計算理論系列文章列表 : https://jonny.vip/category/computer-science/theory-of-computation/.

2.1.3.1 演算法系列

演算法系列文章列表 : https://jonny.vip/category/computer-science/theory-of-computation/algorithm/.

2.1.4 人工智慧系列

人工智慧系列文章列表 : https://jonny.vip/category/computer-science/artificial-intelligence/.

2.2 數學系列

數學系列文章列表 : https://jonny.vip/category/mathematics/.

2.2.1 機率論系列

機率論系列文章列表 : https://jonny.vip/category/mathematics/probability/.

2.2.2 分析系列

分析系列文章列表 : https://jonny.vip/category/mathematics/analysis/.

1.2.3 代數系列

代數系列文章列表 : https://jonny.vip/category/mathematics/algebra/.

2.3 Skill 系列

該系列主要介紹一些和伺服器維護有關的技巧. Skill 系列文章列表 : https://jonny.vip/category/skill/.