1. 程式人生 > >【數據結構】並查集

【數據結構】並查集

tro 算法導論 src html target style 導論 span tony

【並查集】

      為實現 在 不相交集合 上的操作 (1.合並兩個集合 2.查詢某個元素屬於哪個集合)而定義的一種數據結構

     其實現有兩種方式:鏈表和有根樹

    技術分享圖片技術分享圖片

【應用】

    在圖論中 一個聯通分量的所有點 對應一個集合

    對應的操作可以為

      判斷兩個點是不是在同一個聯通分量之中

      添加一條邊合並兩個聯通分量

    

【模板】
    
此處用樹來實現 用數組儲存

優化】 

  (1)路徑壓縮(優化查找操作)

(2)通俗點說法就是要合並兩個樹,將樹高度低的接到 高度高的樹下, 使合並後的樹的高度盡量小 (優化合並操作)

【參考】

    算法導論

    順便推薦一篇講並查集比較有趣的博文

    https://www.cnblogs.com/TonyNeal/p/bingchaji.html

【數據結構】並查集