# 2 संपादित करें:
ठीक है, मैं अपने ही पहला नियम बँधा हुआ - समय से पहले अनुकूलन कभी नहीं। इसके लिए सबसे खराब मामला शायद एक विस्तृत श्रृंखला के साथ स्टॉक हैश मैप का उपयोग कर रहा है - इसलिए मैंने अभी ऐसा किया है। यह अभी भी एक सेकंड की तरह चलता है, इसलिए यहां सबकुछ भूल जाओ और बस ऐसा करें।
और मैं मुश्किल कार्यान्वयन के बारे में चिंता करने से पहले परीक्षण की गति के लिए खुद को एक और नोट कर दूंगा।
एक HashSet काम करेगा (नीचे पुराने अप्रचलित पोस्ट है कि अभी भी अगर किसी को एक लाख से कई अधिक अंक था मान्य हो सकता है), लेकिन अपने पूर्णांकों (जैसे कि, 1-1000) एक उचित सीमा है, यह 1000 पूर्णांक की सरणी बनाने के लिए और आपके प्रत्येक मिलियन पूर्णांक के लिए अधिक कुशल होगा, सरणी के उस तत्व को बढ़ाएगा। (हैश मैप के रूप में बहुत ही वही विचार है, लेकिन कुछ अज्ञातों को ऑप्टिमाइज़ करना है जिन्हें हैश को भत्ते बनाना है, इसे इसे कुछ गुना तेज बनाना चाहिए)।
आप एक पेड़ भी बना सकते हैं। पेड़ में प्रत्येक नोड में (मान, गिनती) होगी और पेड़ मूल्य द्वारा व्यवस्थित किया जाएगा (बाईं ओर निचले मान, दाईं ओर ऊंचे)। अपने नोड पर जाएं, यदि यह अस्तित्व में नहीं है - इसे डालें - अगर ऐसा होता है, तो केवल गिनती बढ़ाएं।
आपके मूल्यों की सीमा और वितरण यह निर्धारित करेगा कि इनमें से कौन सा (या नियमित हैश) बेहतर प्रदर्शन करेगा। मुझे लगता है कि एक नियमित हैश में कई "जीतने" मामले नहीं होंगे, हालांकि (यह एक विस्तृत श्रृंखला और "समूहीकृत" डेटा होना चाहिए, और फिर भी पेड़ जीत सकता है।
चूंकि यह बहुत छोटा है - I आप वास्तविक डेटा सेट के खिलाफ एक से अधिक समाधान और परीक्षण गति लागू की सिफारिश
संपादित करें:। टिप्पणी आरई
ट्री-मैप काम करेगा, लेकिन अभी भी अविवेक की एक परत जोड़ना होगा (और यह बहुत आश्चर्यजनक करने के लिए आसान और मजेदार है अपने आप को कार्यान्वित करें)। यदि आप स्टॉक कार्यान्वयन का उपयोग करते हैं, तो आपको इंटीग्रर्स का उपयोग करना होगा और प्रत्येक वृद्धि के लिए लगातार int से बदलना होगा। इंटीजर को पॉइंटर का संकेत है, और तथ्य यह है कि आप स्टोर कर रहे हैं कम से कम 2x कई वस्तुओं के रूप में। यह विधि कॉल के लिए किसी भी ओवरहेड को भी गिनता नहीं है क्योंकि उन्हें किसी भाग्य के साथ रेखांकित किया जाना चाहिए।
आम तौर पर यह एक अनुकूलन (बुराई) होगा, लेकिन जब आप सैकड़ों हजारों नोड्स प्राप्त करना शुरू करते हैं, तो आपको कभी-कभी दक्षता सुनिश्चित करनी होती है, इसलिए अंतर्निहित वृक्षारोपण उसी कारण से अक्षम होने जा रहा है अंतर्निहित हैशसेट होगा।
मुझे इसे यथासंभव कुशल बनाने की आवश्यकता है। और यह एक बड़े आवेदन के हिस्से के रूप में चल रहा होगा। –