मैं सबसे कुशल (स्ट्रीमिंग ??) एल्गोरिथ्म की खोज कर रहा हूं जो मुझे किसी भी समय किसी डेटा स्ट्रीम में 'के' सबसे अधिक बार होने वाले तत्व बताता है। यह पोस्ट: डेटा स्ट्रीम एल्गोरिदम को "विभाजित और जीतना" मुझे इसमें दिलचस्पी थी।
उदाहरण के लिए, मान लें कि संख्याएँ हैं: (4,3,5,1,6,2,4,3,3,8,9,9,1) और मैं 3 सबसे अधिक होने वाली संख्याओं के लिए क्वेरी करता हूं (कहते हैं), तो मुझे चाहिए उत्तर के रूप में (3,4,1) प्राप्त करें।
मैंने ऑनलाइन खोज करने की कोशिश की, लेकिन ऐसा कोई स्थान नहीं मिला जो दृष्टिकोण देता हो और कहता हो कि यह सबसे अच्छा है। एक तुच्छ समाधान ढेर या संतुलित बाइनरी ट्री का उपयोग करना होगा, लेकिन मुझे लगता है कि एक बेहतर तरीका है और मैं जानना चाहता था कि क्या यह कहीं दस्तावेज है।
संपादित करें: मैं एक एल्गोरिथ्म की तलाश कर रहा हूं जो हमेशा एक एपॉरमिक्स एल्गोरिथ्म के विपरीत सही उत्तर देता है (जिनमें से कई खोज परिणामों में पॉप अप होते हैं) जो किसी तरह या अन्य में डेटा के वितरण पर भरोसा करते हैं