原创 堆排序的思路與優化改進(C 語言描述)

本文中的代碼適用於對數組元素進行排序(以整型數據爲例)。 關於堆排序的具體思路可以參考《算法》書中描述 堆排序 。 自定義的方法 在排序方法之前,定義了五個不同的方法,以便於對數組元素進行比較、交換和覆蓋。爲了適用於不同的數據類型

原创 靜態鏈表的實現(C語言描述)

完整代碼 #include <stdio.h> #include <stdlib.h> #define len 10 int head; typedef struct { char data; int cur; } Co

原创 Hanoi 塔問題在 C++ 中的遞歸實現(爲何圓盤的移動的位置不對?用兩組代碼來分析圓盤的移動位置)

寫在前面 Hanoi 塔問題想必是很多同學在大一都會接觸到的,它是一個很經典的算法問題,這裏主要闡釋 Hanoi 問題在 C++ 中的遞歸實現,當然你也可以查閱一些其他資料來理解它的非遞歸實現過程,這裏就不再敘述了。有興趣的同學可

原创 快速排序的思路與優化改進(C 語言描述)

本文中的代碼適用於對數組元素進行排序(以整型數據爲例)。 自定義的方法 在排序方法之前,定義了三個不同的方法,以便於對數組元素進行比較和交換。爲了適用於不同的數據類型,這裏使用到了 void 指針以及指針類型的轉換,也就是 C 語

原创 《算法(第 4 版)》知識點歸納 ➕ 習題解析

這裏推薦一個我自己的項目:Algorithms-4th-Tutorial 。 項目主頁:Tutorial 。 它涵蓋了《算法(第 4 版)》一書中的大部分重要的知識點以及一些淺顯易懂的解釋,希望能幫助自己和大家更好地掌握書中的內

原创 Emacs Note

寫在前面 這是一個 Emacs 的學習筆記,用來記錄一些重要的知識點,以便於幫助自己進行回顧。筆記的大部分內容來自於 Spacemacs Rocks 第二季 的課程。 參見:     子龍山人:Master Emacs in 21

原创 同一客戶端下使用多個 Git 賬號

寫在前面 我們在日常使用 Git 進行文件管理時,避免不了會使用多個賬號的情況。自己在家開發一些小項目就託管在 Github 上面,而在公司的話會用到另外一個賬號,可能是 GitLab 賬號進行管理,或者是自己想要搭建一個個人博客

原创 關於 VS Code 中 "Classpath is incomplete" warning

問題概述 每當打開一個 java 文件時,它不屬於項目(我們稱之爲獨立的 java 文件),vscode-java 無法計算正確的類路徑。它使報告編譯錯誤變得毫無用處,因爲 UI 會在整個文件中填充令人分心的紅色錯誤,例如: [

原创 冒泡排序的 C++ 實現

冒泡排序是一種簡單的排序算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個算法的名字由來是因爲越小的元素會經由交

原创 C++ 中的轉義字符、控制符和指針變量

參考目錄轉義字符及其含義標準輸入輸出流的控制符有關指針變量的類型及含義 轉義字符及其含義 字符形式 含義 ASCII代碼 \a 響鈴 7 \n 換行,將當前位置移到下一行開頭 10 \t 水平製表(跳到下一個 t

原创 Hanoi塔問題的遞歸實現 C++(爲何圓盤的移動的位置不對?用兩組代碼來分析圓盤的移動位置)

在看這篇文章之前你應該對hanoi塔問題有初步的瞭解,接下來我們主要分析hanoi塔問題在代碼實現上的問題。 下面來看一組示例代碼: 在此代碼塊中,n 代表圓盤的個數,需要通過鍵盤輸入。開始時圓盤都位於 a 柱,期間藉助 b 柱將