原创 C++無向帶權圖與最小生成樹

C++無向帶權圖與最小生成樹 參考《算法》一書,C++語言基於鄰接表實現了無向帶權圖以及Prim算法得到圖的最小生成樹。圖的實現在無向圖的基礎上增加權重即可,可參考《C++鄰接表與圖》。Prim算法簡要說來,可寫成如下僞代碼: for(i

原创 g++命令用法介紹

g++命令用法介紹 首先,要編譯運行一個C++源文件,g++的編譯流程是這樣的: 預處理 —> 編譯 —> 彙編 —> 鏈接 1.預處理 命令:g++ -E 僅做預處理,不進行編譯、彙編和鏈接。得到.l格式文件 如: g++ -E mai

原创 Java實現二叉搜索樹

Java實現二叉搜索樹 具體細節不再介紹,原理以及性能分析直接參見《算法》,個人感覺精髓之處在於遞歸返回過程中向上更新結點的步驟。打個比方,要刪除一個結點,發現要刪的結點小於當前結點,於是需要進入當前結點左子樹進行遞歸刪除,刪除結束則返回

原创 C++有向帶權圖單源最短路徑

C++有向帶權圖單源最短路徑 參考《算法》最短路徑章節編寫實現代碼,包括無負權邊無環的Dijkstra算法,也包括可以處理一般性問題的Bellman-Ford算法。同時採用泛型編程,圖節點可以實現任意類型,具體原理參見《算法》最短路徑章節

原创 機器學習中的L0、L1與L2範數

機器學習中的L0、L1和L2範數 一般來說,監督學習一般可以看作最小化下面的目標函數。 ω∗=argminω∑iL(yi,f(xi;ω))+λΩ(ω)ω∗=arg⁡minω⁡∑iL(yi,f(xi;ω))+λΩ(ω) 其中第一項是我們

原创 JavaScript的綁定方法bind

bind語法 fun.bind(this,arg1,arg2,…) JavaScript函數調用bind方法會返回一個新的方法,新方法的this會綁定傳入對象。 bind應用實例 創建綁定函數 a = 1; var module = {

原创 cmake基本用法

cmake基本用法 我們編寫一個C++單例類,使用cmake構建項目,主要是爲了記錄一下cmake的基本用法。 首先項目文件夾爲DemoProject,我們創建一個main.cpp作爲我們的主文件,創建一個子文件夾Singleton,在

原创 C++ KMP算法

C++ KMP算法 差不多把《算法》這本書看完了,最後一章字符串比較常見的重要的東西應該是子串匹配的KMP方法。講道理書上講的比較複雜,也可能KMP本來理解就不容易,從網上找了幾篇博文介紹的比較清晰,包括配圖,可以參考。 http://

原创 JavaScript事件對象

DOM中的事件對象 觸發DOM某個事件時,瀏覽器會將一個event對象傳入到事件處理程序中,這個對象中包含了所有與事件有關的信息。如下顯示事件類型的代碼所示: <body> <input id="myBtn" type="button"

原创 cublasSgemm詳解

cublasSgemm函數詳解 cublasSgemm是CUDA的cublas庫的矩陣相乘函數,由於cublas中矩陣的存儲是列優先,所以cublasSgemm函數的參數容易讓人誤解,防止忘記,留筆記如下。 首先,在一般的C/C++程序中

原创 C++位運算

C++位運算 總結一下C++中位運算的用法。 &(與運算) 舉例 11&3 = 3 00001011 & 00000011 = 00000011 = 3 常用例子 我們判斷是否被2整除,一般寫成if(n%2==0),

原创 堆排序

堆排序 C++實現的堆排序,分爲三個函數實現: 堆調整函數:保持最大/最小堆 堆構建函數:利用堆調整函數創建一個最大/最小堆 堆排序函數:每次取堆頂元素交換至數組最後,並將size減一,然後調整堆頂保持最大/最小堆 堆調整函數: /

原创 TopK---返回第K小(大)的數字

TopK—返回第K小(大)的數字 給定一個數組,返回數組中第K小(或者第K大)的數字,比較經典的TopK問題。 快排選擇 基於快排的思想,partition函數每次將切分元素放置到正確位置pos:當我們需要的K>pos時,代表我們需要再從

原创 C++ this指針與const成員函數

C++ this指針與const成員函數 this指針 每個對象擁有一個this指針,通過this指針來訪問自己的地址。 this指針並不是對象的一部分,this指針所佔的內存大小是不會反應在sizeof操作符上的。 this指針只能在

原创 自頂向下以及自底向上排序

自頂向下以及自底向上排序 具體原理不再介紹,參考《算法》,書上使用Java實現,此處寫一下C++版本,代碼如下: // // main.cpp // algrithom // // Created by 嶽wenlong on 20