原创 《算法導論》第4章 分治策略 個人筆記

第4章 分治策略 本章通過兩個例子介紹分治策略,然後介紹三種方法求解遞歸式。 4.1 最大子數組問題 FIND-MAX-CROSSING-SUBARRAY(A, low, mid, high) left_sum = - MAX s

原创 《集體智慧編程》第3章 發現羣組 個人筆記

第3章 發現羣組 1、分級聚類 分級聚類通過連續不斷地將最爲相似的羣組兩兩合併,來構造出一個羣組的層級結構。其中每個羣組都是從單一元素開始的,在每次迭代的過程中,分級聚類算法計算每兩個羣組間的距離,並將距離最近的兩個羣組合併成一個

原创 《集體智慧編程》第2章 提供推薦 個人筆記

第2章 提供推薦 1、相關性 蒐集完人們的偏好數據後,我們需要有一種方法來確定人們在品味方面的相似程度。將每個人與所有其他人對比,並計算他們的相似度評價值。這本書介紹兩種評價體系: 歐幾里得距離 皮爾遜相關度 其中皮爾遜相關係

原创 《集體智慧編程》第5章 優化 個人筆記

第5章 優化 1、成本函數 成本函數是優化算法解決問題的關鍵,任何優化算法的目標,就是要尋找一組能夠使成本函數的返回結果達到最小化的輸入。 2、爬山法 類似於梯度下降法,在其臨近的解集中尋找更好的題解。但很明顯,最後的解是局部最優

原创 《算法導論》第2章 算法基礎 個人筆記

第2章 算法基礎 2.1 插入排序 INSERTION-SORT(A) for j = 2 to A.length key = A[j] i = j - 1 while i > 0 and A[i] > k

原创 《集體智慧編程》第4章 搜索與排名 個人筆記

第4章 搜索與排名 1、基於內容的排名 單詞頻度:位於查詢條件中的單詞在文檔中出現的次數能有助於我們判斷文檔的相關程度。 文檔位置:文檔的主題有可能會出現在靠近文檔的開始處。搜索引擎可以對待查單詞在文檔中出現越早的情況給予越高的

原创 《算法導論》第18章 B樹 個人筆記

第18章 B樹 18.1 B樹的定義 一棵B樹T是具有以下性質的有根樹(根爲T.root); 1、 每個結點x有下面屬性: x.n ,當前存儲在結點x中的關鍵字個數 x.n 個關鍵字本身x.key1≤x.key2≤...≤x.keyx

原创 《算法導論》第16章 貪心算法 個人筆記

第16章 貪心算法 16.1 活動選擇問題 問題:假設有一個n個活動的集合S=a1,a2,...,an ,這些活動使用同一個資源,而這個資源在某個時刻只能供一個活動使用。每個活動都有一個開始時間si 和一個結束時間fi 。若si≥fi 或

原创 《算法導論》第19章 斐波那契堆 個人筆記

第19章 斐波那契堆 19.1 斐波那契堆結構 斐波那契堆是一系列具有最小堆序的有根樹的集合,棵樹都遵循最小堆性質。 相關的屬性: 1. x.p :結點x的父結點 2. x.child :指向結點x的某一個孩子的指針,x的所有孩子

原创 《集體智慧編程》第12章 算法總結 個人筆記

第12章 算法總結 12.1 貝葉斯分類器 優點:訓練、查詢速度快;支持增量式訓練;易解釋 缺點:無法處理基於特徵組合所產生的變化結果 12.2 決策樹分類器 優點:易解釋;容易處理變量之間的相互影響 缺點:不支持增量式訓練 12

原创 《算法導論》第8章 線性時間排序 個人筆記

第8章 線性時間排序 8.1 排序算法的下界 定理:在最壞情況下,任何比較算法都需要做Ω(nlgn) 次比較。 證明:通過一個決策樹模型來分析,對於一顆每個排列都是一個可達的葉節點的決策樹來說,樹的高度可以被確定。考慮一顆高度爲h ,具

原创 《算法導論》第9章 中位數和順序統計量 個人筆記

第9章 中位數和順序統計量 9.1 最小值和最大值 尋找集合中的最小值or最大值,必須要做n-1次比較。 同時尋找最小值和最大值不需要2(n-1)次比較,我們將一對輸入元素相互進行比較,然後把較小的與當前最小值比較,較大的與當前最大值比

原创 《算法導論》第23章 最小生成樹 個人筆記

第23章 最小生成樹 23.1 最小生成樹的形成 本章所討論的兩種算法都使用貪心策略,但兩者使用的貪心策略有所不同。這個貪心策略可以由下面的通用方法來表達,該通用方法在每個時刻生長最小生成樹的一條邊,並在整個策略的實施過程中,管理一個遵

原创 《算法導論》第22章 基本的圖算法 個人筆記

第22章 基本的圖算法 22.1 圖的表示 對於圖G=(V,E),可以用兩標準表示方法表示,一種表示法將圖作爲鄰接鏈表的組合,另一種表示法則將圖作爲鄰接矩陣來看待,本書採用鄰接鏈表。 鄰接鏈表表示由一個包含|V| 條鏈表的數組Adj

原创 《算法導論》第21章 用於不相交集合的數據結構 個人筆記

第21章 用於不相交集合的數據結構 21.1 不相交集合的操作 用一個對象表示一個集合的每個元素,設x表示一個對象,希望支持以下三個操作: MAKE-SET(x):建立一個新的集合,它的唯一成員(因而爲代表)是x。因爲各個集合是不相交的