Quay lại thư viện câu hỏi
data structures Middle

Khi nào nên sử dụng cấu trúc dữ liệu Priority Queue (Heap) thay vì sắp xếp mảng (Sorting) trong các hệ thống xử lý tác vụ ưu tiên?

Phân tích hiệu năng

  • Sắp xếp mảng: Nếu bạn cần lấy phần tử lớn nhất/nhỏ nhất liên tục trong một tập dữ liệu động, việc sắp xếp lại toàn bộ mảng mất O(n log n).
  • Priority Queue: Sử dụng Binary Heap giúp thao tác chèn (Insert) và lấy phần tử ưu tiên (Extract-Max/Min) chỉ mất O(log n).

Khi nào nên chọn Priority Queue

  1. Hệ thống lập lịch tác vụ (Task Scheduler): Các tác vụ có độ ưu tiên khác nhau cần được xử lý theo thứ tự quan trọng nhất trước.
  2. Thuật toán tìm đường đi ngắn nhất (Dijkstra): Cần lấy nút có khoảng cách nhỏ nhất hiện tại để tiếp tục duyệt.
  3. Xử lý luồng dữ liệu (Streaming): Khi dữ liệu đổ về liên tục và bạn chỉ cần duy trì top K phần tử lớn nhất.

Lưu ý thực chiến

Trong các ngôn ngữ như Java (PriorityQueue) hay C++ (std::priority_queue), cấu trúc này được cài đặt bằng Binary Heap. Cần lưu ý rằng Priority Queue không hỗ trợ tìm kiếm ngẫu nhiên (random access) hiệu quả, nếu bài toán yêu cầu tìm kiếm theo giá trị, hãy cân nhắc kết hợp với Hash Map.

Luyện tập câu hỏi này trong chế độ đếm ngược mô phỏng phỏng vấn thật:
Phòng Luyện Tập
Khóa học Chuyên sâu Chủ đề data structures

Làm Chủ Phỏng Vấn & Nâng Cao Trình Độ Chuyên Nghiệp

Hệ thống khóa học thực chiến chuẩn Enterprise giúp bạn tự tin chinh phục mọi kỳ phỏng vấn kỹ thuật và thăng tiến thu nhập.

Tải Tuyển Tập 100+ Câu Hỏi Phỏng Vấn Chuyên Sâu (PDF)

Bộ tài liệu chuẩn Senior do Unicode Academy tuyển chọn & biên soạn, hỗ trợ tải về định dạng PDF chuẩn in ấn.

High-Ticket Mentoring
Cần Mentor Phỏng Vấn Thử 1-1 & Tối Ưu CV?

Mô phỏng phỏng vấn kỹ thuật thực tế 1-1 qua Google Meet, nhận xét chi tiết điểm mạnh/yếu và sửa CV trực tiếp cùng giảng viên Unicode.

AI Resume Scanner
Kiểm Tra CV Chuẩn ATS Miễn Phí

Tải CV của bạn lên để hệ thống AI rà soát từ khóa kỹ năng, định dạng và tính điểm chuẩn nhà tuyển dụng.

vừa nâng cấp PRO khóa 1 phút trước   Tìm hiểu khóa học