Saya telah mencari algoritma yang paling efisien (streaming ??) yang memberitahu saya elemen 'k' paling sering terjadi dalam aliran data di setiap titik waktu. Posting ini: "Alur dan taklukkan" algoritma aliran data membuat saya tertarik padanya.
Misalnya, anggap ada angka: (4,3,5,1,6,2,4,3,3,8,9,1) dan saya meminta 3 nomor yang paling sering muncul (katakanlah), maka saya harus dapatkan (3,4,1) sebagai jawabannya.
Saya mencoba mencari online, tetapi tidak dapat menemukan tempat yang memberikan pendekatan dan mengatakan itu yang terbaik. Solusi sepele akan menggunakan tumpukan atau pohon biner seimbang, tapi saya pikir ada cara yang lebih baik dan saya ingin tahu apakah itu didokumentasikan di suatu tempat.
Sunting: Saya mencari sebuah algoritma yang selalu memberikan jawaban yang benar sebagai lawan dari algoritma appromixation (banyak yang muncul dalam hasil pencarian) yang mengandalkan distribusi data dalam beberapa cara atau lainnya