原创 【機器學習算法筆記】0. 機器學習算法分類

【機器學習算法筆記】0. 機器學習算法分類 0.1 凸優化問題 凸優化是指一種比較特殊的優化,是指求取最小值的目標函數爲凸函數的一類優化問題。其中,目標函數爲凸函數且定義域爲凸集的優化問題稱爲無約束凸優化問題。而目標函數和不等式約

原创 【C++研發面試筆記】21. 常用算法-STL中常用算法函數

【C++研發面試筆記】21. 常用算法-STL中常用算法函數 1、for_each(容器起始地址,容器結束地址,要執行的函數) 指定函數依次對指定範圍內所有元素進行迭代訪問,返回所指定的函數類型。 2、查找find Input

原创 【C++研發面試筆記】19. 常用算法-排序算法

【C++研發面試筆記】19. 常用算法-排序算法 19.1 排序算法分類 比較排序和非比較排序: 常見的排序算法都是比較排序,非比較排序包括計數排序、桶排序和基數排序,非比較排序對數據有要求,因爲數據本身包含了定位特徵,所有才能

原创 【機器學習算法筆記】2. 學習算法與最小均方算法(LMS)

【機器學習算法筆記】2. 學習算法與最小均方算法(LMS) 最小均方算法是一個非常流行的在線學習算法。其是建立在自適應濾波和自適應調整權重上的。 2.1 迭代下降思想 三種以迭代下降思想爲基礎的無約束最優化方法: 2.1.1 最速

原创 【C++研發面試筆記】8. 基本數據結構-二叉堆

【C++研發面試筆記】8. 基本數據結構-二叉堆 最大堆、最小堆分別指堆頂爲最大或最小元素的堆,也叫大頂和小頂堆。堆是一種基本的抽象數據類型,一般用二叉樹表示並且遞歸定義,堆頂爲樹的根,保證樹或者子樹的根永遠比子節點大或者小。

原创 【C++研發面試筆記】20. 常用算法-路徑搜索算法(圖算法)

【C++研發面試筆記】20. 常用算法-路徑搜索算法(圖算法) 20.1 BFS與DFS BFS:這是一種基於隊列這種數據結構的搜索方式,它的特點是由每一個狀態可以擴展出許多狀態,然後再以此擴展,直到找到目標狀態或者隊列中頭尾指

原创 【C++研發面試筆記】13. 基本數據結構-哈夫曼樹、樹堆及其他樹簇

【C++研發面試筆記】13. 基本數據結構-哈夫曼樹、樹堆及其他樹簇 13.1 哈夫曼樹 哈夫曼又稱最優二叉樹,是一種帶權路徑長度最短的二叉樹。 13.1.1 哈夫曼樹的構造 假設有n個權值,則構造出的哈夫曼樹有n個葉子節點.n個

原创 【C++研發面試筆記】6. 基本數據結構-數組

【C++研發面試筆記】6. 基本數據結構-數組   數組可以說是我們最初接觸到的數據結構,其結構非常簡單,主要是由相同數據類型的元素數據按一定順序排列的集合,這個集合用一個名字命名,稱爲數組名,而通過編號來區分集合中的元素,稱爲下

原创 【C++研發面試筆記】9. 基本數據結構-二叉查找樹BST

【C++研發面試筆記】9. 基本數據結構-二叉查找樹BST BST樹即二叉搜索樹,其滿足如下條件: 1.所有非葉子結點至多擁有兩個兒子(Left和Right); 2.所有結點存儲一個關鍵字; 3.非葉子結點的左指針指向小於其

原创 【C++研發面試筆記】15. 基本數據結構-字符串string

【C++研發面試筆記】15. 基本數據結構-字符串string 字符串是一類非常常見的數據結構,本篇主要介紹在STL中的string容器和一些標準庫中常用的相關函數。 15.1 STL的string #include <strin

原创 【C++研發面試筆記】17. 基本數據結構-圖結構

【C++研發面試筆記】17. 基本數據結構-圖結構 17.1 拓撲排序 17.1.1 拓撲排序定義 對有向無環圖G進行拓撲排序,是指將G中所有頂點排成一個線性序列,使得圖中任意一對頂點u和v,若邊(u,v)∈E(G),則u在線性序

原创 【C++研發面試筆記】11. 基本數據結構-紅黑樹RBT

【C++研發面試筆記】11. 基本數據結構-紅黑樹RBT 上一節,我們提到了爲了解決二叉查找樹不平衡問題,我們引入了AVL樹,AVL是嚴格平衡樹,但在增加或刪除節點時,需要非常多的旋轉操作。因此這一節我們介紹紅黑樹,紅黑是弱平衡的

原创 【C++研發面試筆記】14. 基本數據結構-查找表與並查集

【C++研發面試筆記】14. 基本數據結構-查找表與並查集 所謂的查找表就是要求實現快速查找,一般在常數時間內O(1)實現,這類一般是通過Hash表來實現的。 14.1 STL中Map Map中包含了一個Key和value,可以實

原创 【C++研發面試筆記】12. 基本數據結構-B樹簇

【C++研發面試筆記】12. 基本數據結構-B樹簇 本節所說的B樹並不是前面所說的二叉樹(Binary Tree),而一類多路搜索樹(B-Tree),其是爲了解決二叉樹只有兩路的情況而提出,廣泛應用於文件搜索(比如文件的目錄樹)。

原创 【C++研發面試筆記】7. 基本數據結構-單鏈表

【C++研發面試筆記】7. 基本數據結構-單鏈表 7.1 STL中的List Lists將元素按順序儲存在鏈表中。與向量(vectors)相比, 它允許快速的插入和刪除,但是隨機訪問卻比較慢(其也可以通過[]的方式來訪問,不過速度