1. 程式人生 > >大資料演算法學習筆記

大資料演算法學習筆記

  • 學習筆記: 時間複雜度: 研究演算法執行的快不快的指標。 時間複雜度不是指一個演算法執行的時間長短。 進行時間複雜度分析時,忽略所有常數項係數,我們只保留多項式中的最高項。 比如:T(n)=cn(n-1)/2 則時間複雜度為T(n)=O(n^2) 時間複雜度關注的是數量級,而非具體的數值。 若一個演算法時間複雜度為T(n)=O(n),則叫做線性演算法,若某一演算法的時間複雜度比線性演算法還低,就可以稱為亞線性演算法。比如O(logn),O(loglogn)以及O(1). 平均複雜度:可以說是所有情況下複雜度的期望值。

基礎資料結構——線性表 線性表是由相同型別的資料按照一定的順序排成的序列。 具體線性表有連結串列、陣列線性表、棧(形象比喻:從一個書箱中拿書)和佇列(形象比喻:車站排隊買票)。

  • 大資料演算法 亞線性演算法有種抽樣的感覺,不訪問全部資料,而是選擇部分資料代替全部資料。 大資料演算法中解決問題的重要思路就是近似。 近似是亞線性演算法的思想。 水庫抽樣 水庫抽樣問題的要求:每一刻所取得樣本,就是前面已經“流過”的全部資料的均勻抽樣。 資料流模型: (1)資料流通常來自某個域中元素的序列。 (2)資料量是遠大於記憶體容量的。 (3)處理每一個數據要快速,因為資料會快速地源源不斷的到來。

資料概要:概括資料的資料結構叫作資料概要。

圖論相關知識 有向圖:邊是有方向的。 無向圖:邊是沒有方向的。 與頂點相連的邊的數量叫作度數。

對於判定問題的嚴格精確解,我們能給出嚴格的是或者否。而對於判定問題的近似演算法,只要給出“是”和“差的很遠”這兩種情況就可以 了。

相對於記憶體來講,像磁碟、磁帶這樣的儲存介質一般稱為外存,所以磁碟演算法也叫做外存演算法。 硬碟的一個重要特點就是它以塊為單位進行訪問。