8.1 連線(join)演算法
笛卡爾積的運算:
笛卡爾積運算+約束->連線操作:
θ連線:
自然連線(一種特殊的θ連線):
map-reduce-merge關係連線演算法的實現:
方式一:
方式二:
mapreduce上的二路join:
mapreduce上的多路join:
實現的具體機制:
相似連線:
用mr進行多重集相似連線的演算法:
多重集合相似連線演算法:
相似性計算:
8.2圖演算法:
圖演算法與mapreduce:
關於路徑的演算法:
單源最短路徑:
單源最短路徑(sssp)演算法:
使用mapreduce進行解決:
具體過程:
sssp摘要:
最小生成樹使用mapreduce:
Dinic演算法例子
寫法 1 用鄰接矩陣儲存各個流的起點終點 2 用bfs把圖分出層次 記錄到各個點需要流幾次 3 用dfs對圖找出增廣路進行流量擴充 注意反向流要記錄成容量為0的路徑,更新正向流時也要更新反向流 教材361頁 includeusing namespace std struct edge edge ed...
分治演算法 例子
分治策略 將問題分解成若干個小的子問題,每個子問題與大問題同型 所以裡面可以用遞迴 但規模更小 遞迴解決這些子問題 將子問題的解答合併,獲得大問題的解答 最大欄位和問題 include include include using namespace std int a 100 int maxsum ...
排序演算法例子
氣泡排序 include using namespace std 氣泡排序,時間複雜度o n 2 穩定,比較次數最少n 1,最多n n 1 2 void bubble sort int list,int num int main bubble sort2 arraylist,len for int ...