日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

大数据笔记-外存算法

發布時間:2024/6/21 综合教程 42 生活家
生活随笔 收集整理的這篇文章主要介紹了 大数据笔记-外存算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

4.1外存存儲結構與外存算法:

分層存儲:

做法:

可擴展性問題:若程序分散地訪問磁盤上的數據,即使是好的操作系統也無法利用數據塊存取優勢

基本界限:

隊列和堆棧:

4.2外存算法示例:外存排序算法

算法的分析1:(多路歸并)

M/B路

以塊為單位進行調度

1.首先從磁盤里把磁盤塊放進內存,在內存中進行排序,每次放M/B塊,一共放N/B塊。做完后,外存中已經是在大小為M/B的區域里、分別排好序的數據。再分別取M/B-1個這些區域的第一個元素,放入內存中。

2.在內存中,將M/B-1塊用于磁盤塊的歸并,剩余的一塊用作緩存

do{

  step1.[取出]M/B-1塊中最小的數據,放于緩存中

  step2.(用于緩存的磁盤塊未滿,step1)||(緩存滿后,寫出到外存,清空緩存)||(前M/B-1個磁盤塊中的數據被取完,加載相應區域的下一個磁盤塊)

}while(將所有的磁盤塊中的數據都進行了排序)

疑問:如果step1中,排序磁盤塊的次數大于M/B-1,那么歸并排序時應該怎么做?

(演示的例子里,在內存中排序磁盤塊的次數=M/B-1=3)

循環停止條件:(k-1代表第k輪)

算法分析2:(快排)

根號(M/B)路

M=8,N=24,B=2

(8,16是選擇的分點,buffer磁盤塊的大小為B,buffer滿了以后,將里面的數據寫到外存)

此時,寫出到外存的三個區域的元素還沒進行排序,但是大小已經可以放進內存,接下來將數據放進內存進行排序。若大小仍不能放進內存,則繼續上述做法,直到數據塊的大小可以放進內存。

復雜度分析:

劃分停止條件:

計算分割元素:

存在的問題:

解決方法:

改進的算法的步驟:

從而得到每一路歸并的元素上限。

算法復雜性分析:

其中,步驟二經過根號(M/B)次抽取分割元素,在4N/根號(M/B)的數據(第一次的抽樣的結果)內抽取

總結:

它們都是最優的。

4.3外存數據結構示例:外存查找樹

內存查找樹:

外存查找樹:

外部搜索樹:

存在的問題:使用紅黑樹維護BFS塊

5.1B樹:

B樹上的查詢:

為符合需求,B樹應該滿足的性質:

(a,b)樹:

“所有的葉子在同一層并且包括a到b個元素”:葉子節點的磁盤塊的數量為[a,b]

對(a,b)樹進行分析:

(a,b)樹中的操作:

  插入:

  

  刪除:

注:若最后合并影響了根節點,使根節點的兒子小于a,此時根節點是不變的(參考上文對根節點數量的定義)。然而,若根節點只有一個兒子,則把根節點給刪了

B樹的結論:

5.2KD樹

查詢:

kdB-樹:

kdB-樹的構建:

改進:

復雜度:

動態地改進:

  插入:

  

  刪除:

  

kdB-樹總結:

6.1 表排序及其應用

表排序(List Ranking)

表排序的困難之處:

一種高效的表排序算法:

分析:

目標:對給定的樹T,以表L表示,進而讓對T的每一種計算可用對L的一種rank來完成

歐拉回路技術:

應用場景:

1.父子關系判定:

2.計算前序計數:

3.計算子樹大小:

6.2時間前向處理方法:

將圖問題表示為有向無環圖的估值問題

處理過程:

......

測試:

求最大獨立集MIS(貪心法,不一定求得最優解):

(1的入度為0,在I中,選取后面的節點時,若其父親節點在I中,則該節點不能加入I中):

6.3縮圖法:

即把大的圖縮到內存中

求連通性->半外存算法:結點在內存中,邊在外存中

算法分析:

M(memory)

若|V|>M:  

  

  

  

  算法復雜度分析:

  

應用:最小生成樹

時間復雜度分析:

另一種圖算法技術:

總結

以上是生活随笔為你收集整理的大数据笔记-外存算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。