Chuyển tới nội dung chính
Z

Trình trực quan hóa Binary Heap

Binary max-heap tương tác — thêm phần tử (insert) và lấy ra giá trị lớn nhất (extract-max) với hoạt ảnh sift-up / sift-down, có điều khiển từng bước và pseudocode. Chạy hoàn toàn trong trình duyệt.

Miễn phí Không cần đăng ký Chạy trên trình duyệt Tôn trọng riêng tư Updated

/

Mã giả

Run an operation to see its steps.

Cách dùng

  1. 1 Nhập một số rồi nhấn Insert — quan sát nó “sift up” lên đúng vị trí của mình.
  2. 2 Nhấn Extract Max để xóa nút gốc và xem heap “sift down”.
  3. 3 Dùng Random để chèn một giá trị ngẫu nhiên, hoặc Clear để làm rỗng heap.
  4. 4 Chạy từng bước của bất kỳ thao tác nào và theo dõi pseudocode được tô sáng.

Vì sao dùng công cụ này

  • Xem binary max-heap dưới dạng cây, với giá trị lớn nhất luôn nằm ở gốc.
  • Quan sát sift-up sau khi insert và sift-down sau khi extract khôi phục lại tính chất heap.
  • Hiểu vì sao cả insert và extract đều có độ phức tạp O(log n) — bằng chiều cao của cây.
  • Chạy hoàn toàn trong trình duyệt của bạn. Không cần đăng ký, không cần tải lên.

Câu hỏi thường gặp

Binary heap là gì?

Binary heap là một cây nhị phân hoàn chỉnh được lưu trữ dưới dạng mảng, trong đó mọi nút cha đều thỏa mãn tính chất heap. Trong max-heap, mỗi nút cha ≥ các nút con của nó (nên giá trị lớn nhất nằm ở gốc); trong min-heap, mỗi nút cha ≤ các nút con của nó.

Độ phức tạp thời gian của các thao tác trên heap là gì?

Insert và extract-max có độ phức tạp O(log n) — chúng đẩy một giá trị lên hoặc xuống tối đa bằng chiều cao của cây. Đọc giá trị lớn nhất chỉ mất O(1).

Heap được lưu trữ trong mảng như thế nào?

Cây được biểu diễn ngầm định: nút ở chỉ số i có các nút con ở 2i+1 và 2i+2, và nút cha ở ⌊(i−1)/2⌋. Không cần dùng đến con trỏ.

Heap được dùng để làm gì?

Hàng đợi ưu tiên (priority queue), heap sort, thuật toán Dijkstra và Prim, cùng bất kỳ tác vụ nào cần liên tục lấy ra phần tử lớn nhất (hoặc nhỏ nhất) còn lại.

Trình trực quan hóa Binary Heap là gì?

Trình trực quan hóa Binary Heap minh họa một binary max-heap — một cây nhị phân hoàn chỉnh (được lưu trữ dưới dạng mảng) trong đó mỗi nút cha luôn lớn hơn hoặc bằng các nút con của nó. Công cụ thể hiện quá trình sift-up sau khi insert và sift-down sau khi extract giá trị lớn nhất, giúp giá trị lớn nhất luôn nằm ở gốc (root).

Tính năng

Insert / extract / peek

Hoạt ảnh hóa sift-up khi insert và sift-down khi extract phần tử gốc.

Độ phức tạp

insert / extract: O(log n). peek: O(1). build-heap: O(n). Không gian: O(n).

Riêng tư 100%

Chạy hoàn toàn trong trình duyệt của bạn — không có gì được tải lên.

Ví dụ

Input

insert 5, 3, 8, 1, 4 (min-heap)

Output

heap array = [1, 3, 8, 5, 4] (root = min = 1)

Trường hợp sử dụng

  1. 1

    Hàng đợi ưu tiên

    Xem cấu trúc heap đứng sau một hàng đợi ưu tiên hiệu quả.

  2. 2

    Heap sort & Dijkstra

    Hiểu cấu trúc được dùng bởi heap sort và thuật toán Dijkstra.

  3. 3

    Học sift-up/sift-down

    Theo dõi cách tính chất heap được khôi phục sau mỗi thao tác.

Tóm tắt

Công cụ trực quan hóa heap nhị phân của Zerethon minh họa động một min-heap hoặc max-heap ngay trong trình duyệt, hiển thị thao tác insert (sift-up) và extract (sift-down) khi tính chất heap của cây hoàn chỉnh được khôi phục. Insert và extract chạy trong O(log n), peek trong O(1), và xây dựng heap từ một mảng trong O(n); không gian là O(n).

Danh mục
Thuật toán
Giá
Miễn phí
Quyền riêng tư
Chạy trên trình duyệt
Đăng ký
Không cần

Tài liệu tham khảo

Quyền riêng tư

Dữ liệu của bạn không bao giờ rời khỏi trình duyệt trừ khi được nêu rõ. Trình trực quan hóa Binary Heap chạy hoàn toàn phía client — không tải lên máy chủ, không ghi log, không theo dõi dữ liệu bạn nhập.

Mới làm quen? Đọc giải thích từng bước kèm phân tích Big-O: Tìm hiểu Data Structures →

Công cụ liên quan

Xây dựng, chia sẻ và phát triển trên Zerethon Social

Đăng ký miễn phí. Kiếm điểm, sưu tầm thành tựu và kết nối với nhà sáng tạo khắp thế giới.

Đăng ký miễn phí