Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

Disjoint Set - Cấu Trúc Dữ Liệu Tách Biệt

Nhấn vào đây để đọc bằng ngôn ngữ khác: English

Disjoint-set (cũng được gọi là cấu trúc dữ liệu hợp nhất-tìm hoặc cấu trúc dữ liệu hợp nhất-tìm-ghép) là một cấu trúc dữ liệu theo dõi một tập hợp các phần tử được phân chia thành một số tập hợp tách biệt (không giao nhau). Nó cung cấp các hoạt động gần như độ phức tạp hằng số (bị chặn bởi hàm Ackermann nghịch đảo) để thêm các tập hợp mới, gộp các tập hợp hiện có, và xác định xem các phần tử có trong cùng một tập hợp không. Ngoài việc được sử dụng trong nhiều mục đích khác nhau (xem phần Ứng dụng), các tập hợp không giao nhau còn đóng vai trò quan trọng trong thuật toán Kruskal để tìm cây khung tối thiểu của một đồ thị.

disjoint set

MakeSet tạo ra 8 tập hợp đơn lẻ.

disjoint set

Sau một số hoạt động Union, một số tập hợp được nhóm lại.

Thực hiện

  • DisjointSet.js
  • DisjointSetAdhoc.js - Phiên bản tối thiểu (tạm thời) của cấu trúc dữ liệu DisjointSet (hoặc UnionFind) không có các phụ thuộc bên ngoài và dễ dàng sao chép-và-dán và sử dụng trong cuộc phỏng vấn lập trình nếu được phép bởi người phỏng vấn (vì nhiều cấu trúc dữ liệu trong JS thiếu).

Tài liệu tham khảo