मैं जावा में प्रोग्रामिंग कर रहा हूं। प्रत्येक 100 एमएस मेरे कार्यक्रम को एक नया नंबर मिलता है।फ्लाई पर पेरेंटाइल की गणना
यह एक कैश पिछले n = 180
संख्या के इतिहास में शामिल है के साथ है। जब मुझे एक नया नंबर x
मिलता है, तो मैं गणना करना चाहता हूं कि x
से छोटे कैश में कितनी संख्याएं हैं। बाद में मैं कैश में सबसे पुराना नंबर हटाना चाहता हूं।
हर 100 एमएस मैं की गणना कर रहे हैं और सबसे पुराने नंबर को हटाना कितने छोटी संख्याओं की प्रक्रिया दोहराना चाहते हैं।
मुझे किस एल्गोरिदम का उपयोग करना चाहिए? मैं गणना को तेजी से बनाने के लिए अनुकूलित करना चाहता हूं क्योंकि यह एकमात्र चीज नहीं है जो उन 100 एमएस पर गणना की जाती है।
चूंकि केवल 180 संख्याएं हैं और पुनर्मूल्यांकन केवल हर 100ms होता है, मैं निश्चित रूप से पठनीयता के लिए अनुकूलन करता हूं, न कि गति के लिए। – CodesInChaos
+1: लगभग उसी समाधान को मिला। –
@CodeInChaos, मुझे नहीं लगता कि यह एक सूची के साथ और अधिक पठनीय होगा। इसके अलावा, 180 कहता है कि पत्थर में डाला गया है? ;) – aioobe