Tôi đã tìm kiếm thuật toán (phát trực tuyến ??) hiệu quả nhất cho tôi biết các phần tử xảy ra thường xuyên nhất trong luồng dữ liệu tại bất kỳ thời điểm nào. Bài đăng này: "Phân chia và chinh phục" thuật toán luồng dữ liệu khiến tôi quan tâm đến nó.
Ví dụ: giả sử có các số: (4,3,5,1,6,2,4,3,3,8,9,1) và tôi truy vấn 3 số xảy ra thường xuyên nhất (giả sử), thì tôi nên lấy (3,4,1) làm câu trả lời.
Tôi đã thử tìm kiếm trực tuyến, nhưng không thể tìm thấy bất kỳ nơi nào đưa ra cách tiếp cận và nói rằng đó là cách tốt nhất. Một giải pháp tầm thường sẽ là sử dụng một đống hoặc cây nhị phân cân bằng, nhưng tôi nghĩ có một cách tốt hơn và tôi muốn biết liệu nó có được ghi lại ở đâu đó không.
Chỉnh sửa: Tôi đang tìm kiếm một thuật toán luôn đưa ra câu trả lời chính xác trái ngược với thuật toán phân bổ (nhiều trong số đó bật lên trong kết quả tìm kiếm) dựa trên phân phối dữ liệu theo cách này hay cách khác