Upgrade to Pro — share decks privately, control downloads, hide ads and more …

UnionFindとは

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for machio machio
September 09, 2025

 UnionFindとは

Avatar for machio

machio

September 09, 2025
Tweet

Other Decks in Programming

Transcript

  1. P8
 ©Techouse All Rights Reserved
 1 2 3 4 5

    2つのグループを 1つにまとめる 

  2. P9
 ©Techouse All Rights Reserved
 1 2 3 4 5

    1 2 2つのグループを 1つにまとめる 

  3. P10
 ©Techouse All Rights Reserved
 1 2 3 4 5

    1 2 2つのグループを 1つにまとめる 

  4. P11
 ©Techouse All Rights Reserved
 1 2 3 4 5

    1 2 3 4 5 2つのグループを 1つにまとめる 

  5. P13
 ©Techouse All Rights Reserved
 1 3 2 4 6

    5 1と3 → true 1と2 → false 2つの要素が同じグループに属しているかを判定する 

  6. P30
 ©Techouse All Rights Reserved
 根 root 節 node 節

    node 葉 reaf 葉 reaf 葉 reaf 葉 reaf • 階層を持ったデータ構造 • 1つの親から複数の子がぶら下 がるような構造
  7. P34
 ©Techouse All Rights Reserved
 2 4 6 5 5

    1 3 2 4 6 各ノード(要素)は親を1つ持つ 1 3 7 7
  8. P35
 ©Techouse All Rights Reserved
 1 3 2 4 6

    5 5 1 3 2 4 6 各ノード(要素)は親を1つ持つ 3の親 4と6の親 5自身の親 7 7の親
  9. P47
 ©Techouse All Rights Reserved
 1 3 6 2 4

    5 7 5と7が同じグループか「判定」する
  10. P48
 ©Techouse All Rights Reserved
 1 3 6 2 4

    5 7 5と7が同じグループか「判定」する 5の親を辿っていく
  11. P49
 ©Techouse All Rights Reserved
 1 3 6 2 4

    5 7 5と7が同じグループか「判定」する 5の親を辿っていく 親
  12. P50
 ©Techouse All Rights Reserved
 1 3 6 2 4

    5 7 5と7が同じグループか「判定」する 5の親を辿っていく 親 親
  13. P51
 ©Techouse All Rights Reserved
 1 3 6 2 4

    5 7 5と7が同じグループか「判定」する 5の親を辿っていく 根 親 親
  14. P52
 ©Techouse All Rights Reserved
 1 3 6 2 4

    5 7 5と7が同じグループか「判定」する 5の根 => 1 根 親 親
  15. P53
 ©Techouse All Rights Reserved
 1 3 6 2 4

    5 7 5と7が同じグループか「判定」する 5の根 => 1 7の親を辿っていく 根
  16. P54
 ©Techouse All Rights Reserved
 1 3 6 2 4

    5 7 5と7が同じグループか「判定」する 5の根 => 1 7の親を辿っていく 根 親
  17. P55
 ©Techouse All Rights Reserved
 1 3 6 2 4

    5 7 5と7が同じグループか「判定」する 5の根 => 1 7の親を辿っていく 根 親 親
  18. P56
 ©Techouse All Rights Reserved
 1 3 6 2 4

    5 7 5と7が同じグループか「判定」する 5の根 => 1 7の親を辿っていく 根 親 親 根
  19. P57
 ©Techouse All Rights Reserved
 1 3 6 2 4

    5 7 5と7が同じグループか「判定」する 5の根 => 1 7の根 => 2 根 親 親 根
  20. P58
 ©Techouse All Rights Reserved
 1 3 6 2 4

    5 7 5と7は所属する木 (グループ)の 根(代表元)が一致しない 根 根
  21. P59
 ©Techouse All Rights Reserved
 1 3 6 2 4

    5 7 5と7は所属する木 (グループ)の 根(代表元)が一致しない つまり、別グループである 根 根
  22. P60
 ©Techouse All Rights Reserved
 1 3 6 2 4

    5 7 逆に、例えば 4と7は根が2で一致するので同一グループだと分かる 根 根