原创 圖論最常用的最短路算法詳解及實現

超詳細解釋最短路算法:BFS、Dijkstra、A*、Bellman-Ford及Floyd-Warshall,並給出實現。 見:圖論:常用的最短路算法詳解

原创 數據結構與算法分析(C語言描述)課後習題答案(Github)

最近在慢慢寫數據結構與算法分析(C語言描述)的課後習題答案。 地址: https://github.com/seineo/Data-Structures-and-Algorithm-Analysis-in-C 如果對你有幫助,請收藏支持。

原创 Linux下安裝Vim插件YouCompleteMe

說實話,這個插件真的很容易裝,但是我之前老是失敗。實際上這個是牆的鍋,github的clone速度太太太慢了!平時的一些倉庫可以用gitee解決問題,但是這個插件他又要調用github上的其他倉庫所以就很煩。 (所以我就翻了個牆,

原创 程序設計實踐:基礎數據結構與算法

算法和數據結構是程序的基石,幾乎每一個程序都需要它們,但絕大多數程序都不需要發明新的算法和數據結構。 本章基本是圍繞着對HTML中name-value鍵值對的處理,闡述了滿足於絕大多數程序需求的基本算法和數據結構,包括搜索、排序、

原创 程序設計實踐:好的代碼風格

什麼是好的代碼風格,第一章討論了包括命名、語句、宏、幻數和註釋等重要內容。 筆記和發散討論見:Style。 歡迎在這裏提出問題、給出建議。

原创 求公共前綴(水)、URL(水)

求公共前綴:編寫程序測試一個函數,該函數查找兩個單詞最長的共同前綴(例如,“global”和“glossary”最長的 共同前綴是“glo”,“department”和“depart”最長的共同前綴是“depart”,“glove”和“d

原创 分魚(遞歸)

A、B、C、D、E 五人在某天夜裏合夥去捕魚,到第二天凌晨時都疲憊不堪,於是各自找地方去睡 覺。日上三竿,A 第一個醒來,他將魚分爲五份,把多餘的一條魚扔掉,拿走自己的一份;B 第二個醒 來,也將魚分爲五份,把多餘的一條魚扔掉,拿走自己的

原创 啊哈算法第四章 萬能的搜索

從這一章開始就真的步入對我而言全新的算法世界了(因爲排序、枚舉在上學期還是接觸過的,而棧、隊列在這學期我看的C++Primer和老師教的Java課裏也有所涉及) 一、深度優先搜索(Depth First Search) 首先作者用上章遺留

原创 Java上機作業寵物商店

編寫一個寵物商店程序,要求如下: 假設你擁有一家寵物商店,該店能夠寄養一批寵物(用數組存儲,用常量設置數組最大值,如10),通過程序實現該寵物商店的寵物管理。 程序實現具體寵物寄養功能(寄養功能可理解爲寵物對象創建,如:用戶輸入1,表示寄

原创 C++ Primer ——謂詞與lambda

謂詞 謂詞是一個可調用的表達式,其返回結果是一個能用作條件的值。 標準庫算法所用謂詞分爲兩類: 1、一元謂詞:意味着只接受單一參數                   2、二元謂詞:意味着有兩個參數    接受謂詞的算法對序列的元素調用謂

原创 getchar函數的使用易錯點

詳細解析爲什麼char ch = getchar()是錯誤的,而應該是int ch = getchar()。 見:int ch = getchar()?

原创 java類的繼承this調用屬性問題

由於這個地方我有點亂,所以記錄一下。 public class NotOverriding extends Base{ private int i=2; public static void main(String[] args){

原创 啊哈算法第六章 最短路徑

通過之前的學習,我們知道可以使用DFS或BFS求出兩點間的最短路徑。還有什麼別的辦法呢? 一、Floyd-Warshall算法 我們知道,要想讓兩點的路程變短,我們需要引入第三個點(k),並通過這個點a->k->b,纔有可以縮短原來只從a

原创 啊哈算法第五章 圖的遍歷

一、圖的一些概念 簡單來說,圖是由頂點和連接這些頂點的邊構成的集合。遍歷就是指把圖的每一個頂點都訪問一次,用一個數表示各個頂點被第幾個訪問到,這個數就叫時間戳。 圖的鄰接矩陣存儲法: 關聯於同一條邊的兩個結點稱爲鄰接點。關聯於同一個結點的

原创 Linux環境下C語言getopt函數的詳細解析

該函數在頭文件getopt.h中。 函數原型: int getopt(int argc,char * const argv[ ],const char * optstring); 返回值爲int類型,其實解析成功一個選項時(可能