Tiệm Công Nghệ

Đang hiện gợi ý.

Đang mở danh mục của tiệm…
↑↓ để di chuyển↵ để mởesc để đóng
Tìm kiếm Tiệm Công Nghệ
Animationv1.0.0~18 KB (gzip)

Union-Find Animation

Một khu rừng phát sáng nơi các nhóm gộp lại và đường đi được ép phẳng: Union-Find với union by size và path compression, sẵn sàng cho bài giảng, slide và blog

Miễn phíMiễn phí
Định dạng

.zip · HTML / CSS / JS · v1.0.0

Miễn phí — không cần tài khoản hay email. Luôn là bản mới nhất.

Đang chạy trực tiếp

Phiên bản
Độ rộng khung xem
Thu phóng

Giới thiệu

Union-Find dễ hiểu nhất khi bạn tận mắt thấy khu rừng thay đổi. Animation này chạy đúng các hàm find, union và connected trên trang thuật toán miễn phí, từng bước một: mỗi phần tử là một quả cầu phát sáng trong một cái cây, union xoay gốc của cây nhỏ sang treo dưới gốc cây lớn, còn find thắp sáng đường đi lên gốc và, khi có path compression, làm mọi nút nó vừa đi qua bay thẳng lên treo dưới gốc. Mảng parent[] và size[] nằm ngay dưới khu rừng và đổi theo từng bước, dòng code đang chạy sáng lên bên cạnh, và một cặp thanh so sánh số bước nhảy con trỏ với cùng danh sách thao tác đó khi không có path compression.

  • Union by size và path compression đúng như đoạn code viết, có công tắc để tắt path compression
  • Các biến của đoạn code (root, node, big, small) lướt trên các quả cầu dưới dạng nhãn nhỏ, nên dòng code nào cũng có thứ để trỏ vào
  • Ba kịch bản theo seed: nhóm bạn bè, mạng máy tính và trường hợp tệ nhất của union by size, hoặc tự gõ danh sách thao tác của bạn
  • Bộ đếm find, số lần gộp và số bước nhảy con trỏ, cùng chi phí của chính danh sách đó khi có và không có path compression
  • Trình phát đầy đủ với thanh kéo và tốc độ 0.5×–4×, đẹp khi chiếu slide hay quay video
  • Mọi màu sắc, bo góc, font chữ và thời gian đều là CSS custom property; sáng tối theo trang của bạn
  • Không cần cài gì: một file CSS và một script, hoặc một component React

Tính năng · 11

  • Diễn lại đúng find, union và connected như trên trang thuật toán miễn phí: union by size và lượt thứ hai nén đường đi (path compression)
  • Một khu rừng các quả cầu phát sáng: union xoay gốc của cây nhỏ sang treo dưới gốc cây lớn, còn path compression làm mọi nút trên đường đi bay thẳng lên gốc
  • find thắp sáng đường đi lên gốc từng bước một, kèm các biến của chính đoạn code (root, node, big, small) lướt theo dưới dạng nhãn nhỏ
  • Mảng parent[] và size[] nằm ngay dưới khu rừng, đổi theo từng khung hình; size cũ của các nút không phải gốc được làm mờ, đúng như đoạn code để lại
  • Bộ đếm find, số lần gộp và số bước nhảy con trỏ, cùng hai thanh so sánh số bước nhảy khi có và không có path compression trên cùng một danh sách thao tác
  • Ba kịch bản theo seed (nhóm bạn bè, mạng máy tính, trường hợp tệ nhất của union by size), hoặc tự gõ thao tác như union 0 1; find 1
  • Bật tắt path compression để thấy cùng một danh sách tốn nhiều hay ít bước hơn; khi tắt, những dòng chỉ path compression mới chạy sẽ mờ đi
  • Khung code hiện phương thức đang chạy (find, union hoặc connected), kèm ngăn xếp lời gọi ở phía trên
  • Trình phát: chạy, dừng, lùi, tiến từng bước, về đầu, kéo thanh thời gian, tốc độ 0.5×–4×, tuỳ chọn lặp lại
  • Bản HTML/CSS/JS thuần và bản React (dùng được với Next.js), đủ sáng và tối
  • Không phụ thuộc thư viện, khoảng 18 KB sau gzip (cả script lẫn CSS)

Cách dùng

Nhúng stylesheet và script một lần, rồi đặt một phần tử rỗng có data-union-find-animation ở bất cứ chỗ nào bạn muốn có trình phát:

HTML
<link rel="stylesheet" href="union-find-animation.css" />
<script src="union-find-animation.js" defer></script>

<div class="union-find-animation" data-union-find-animation></div>

<div
  class="union-find-animation"
  data-union-find-animation
  data-union-find-animation-scenario="worst-case"
  data-union-find-animation-compression="false"
></div>

<div
  class="union-find-animation"
  data-union-find-animation
  data-union-find-animation-operations="union 0 1; union 2 3; union 1 3; find 3"
  data-union-find-animation-elements="6"
></div>

Tuỳ chọn qua data attribute, đều bắt đầu bằng data-union-find-animation-:

Attribute Mặc định Tác dụng
-scenario friend-circles friend-circles, network-links hoặc worst-case: danh sách thao tác sẽ chạy
-operations của kịch bản Danh sách của riêng bạn: union a b, find a và connected a b, cách nhau bằng ;, , hoặc xuống dòng (tối đa 24)
-elements của kịch bản Số phần tử ban đầu của khu rừng (2–16); tự tăng lên nếu danh sách của bạn nhắc đến nhiều hơn
-seed 7 Kịch bản dựng danh sách nào: cùng seed luôn ra cùng một danh sách
-compression true false để find chạy không có lượt nén đường đi thứ hai
-speed 1 Từ 0.25 đến 4
-autoplay true Tự chạy khi tải xong (không bao giờ tự chạy khi bật giảm chuyển động)
-loop false Dừng một chút ở phần tổng kết rồi chạy lại từ đầu
-code true false để ẩn khung code
-inputs true false để ẩn các hàng nhập liệu (kịch bản, thao tác, số phần tử, nén đường đi)

Phần tử thêm vào sau khi trang đã tải: gọi UnionFindAnimation.init(container), hàm này trả về một hàm để gỡ bỏ. Muốn điều khiển toàn bộ thì dùng UnionFindAnimation.createUnionFindAnimation(element, options): nó trả về một handle có setScenario, setOperations(text) (trả về false và báo lý do ngay trên trang khi không đọc được danh sách), setElements, setCompression, shuffle, player (play, pause, seek…), trace() và destroy.

Hỏi về sản phẩm này

Chưa chắc có hợp dự án của bạn? Cứ hỏi — câu trả lời lấy từ chính trang này.

Câu trả lời do AI viết dựa trên trang này và có thể sai. Nội dung trên trang mới là chuẩn.

Lịch sử phiên bản

  1. 1.0.0First releaseMới nhất

    Plain HTML/CSS/JS and React builds of a step-by-step Union-Find (union by size, path compression) animation: a glowing forest where roots swing under roots and compressed nodes fly up, synced parent and size arrays, live code, hop counters with and without compression, three seeded scenarios or your own operations, player controls, light and dark.

  2. Bản sửa lỗi và tính năng mới đều có ngay ở nút tải này — file tải về luôn là bản mới nhất.