वर्तमान में, मैं एक दूसरे के खिलाफ हर इंटीजर तत्व का परीक्षण कर रहा हूं ताकि यह पता चल सके कि कौन से मेल खाते हैं। सरणी में अपने स्वयं के सेट में डुप्लीकेट नहीं होते हैं। इसके अलावा, सरणी हमेशा बराबर लंबाई नहीं होती है। क्या इसे गति देने के लिए कोई चाल है? मैं इसे हजारों बार कर रहा हूं, इसलिए यह मेरे कार्यक्रम में एक बोतल गर्दन बनना शुरू कर रहा है, जो सी # में है।सरणी के बीच मैचों की संख्या खोजने का सबसे तेज़ तरीका क्या है?
उत्तर
उपयोग एक HashSet
var set = new HashSet<int>(firstArray);
set.IntersectWith(secondArray);
सेट अब केवल मूल्यों है कि दोनों सरणियों में मौजूद होता है।
मुझे लगता है कि आप चाहते हैं। इसके बजाय .Union –
आह मस्तिष्क फार्ट! धन्यवाद। मैंने इसे संपादित किया। – Josh
बस हैशसेट के साथ हैशसेट की कोशिश की और यह सभी तत्वों पर पुनरावृत्ति की तुलना में धीमी गति से दोगुनी है। –
आप LINQ इस्तेमाल कर सकते हैं:
var query = firstArray.Intersect(secondArray);
या अगर सरणियों पहले से ही हल कर रहे हैं आप दो सरणियों के ऊपर अपने आप को पुनरावृति सकता है:
int[] a = { 1, 3, 5 };
int[] b = { 2, 3, 4, 5 };
List<int> result = new List<int>();
int ia = 0;
int ib = 0;
while (ia < a.Length && ib < b.Length)
{
if (a[ia] == b[ib])
{
result.Add(a[ia]);
ib++;
ia++;
}
else if (a[ia] < b[ib])
{
ia++;
}
else
{
ib++;
}
}
@ मार्क: आपका कोड चुपचाप मानता है कि सरणी को – Vlad
सॉर्ट किया गया है जॉन ने पहले से ही कहा है कि उपरोक्त टिप्पणियों में सरणी का आदेश दिया गया है। –
अगर इस तरह के एक तुलना अपने कार्यक्रम में अड़चन है, आप शायद एक अनुचित डेटा संरचना का उपयोग कर रहे हैं। आपके डेटा को सॉर्ट करने का सबसे आसान तरीका हो सकता है। फिर सामान्य प्रविष्टियों को खोजने के लिए, आपको केवल एक बार दोनों सरणी को पार करने की आवश्यकता होगी। डेटा को हैशसेट में रखना एक और विकल्प होगा।
- 1. int में अधिकतम योग सीमा खोजने का सबसे तेज़ तरीका []
- 2. सूची में किसी आइटम को खोजने का सबसे तेज़ तरीका?
- 3. एक सबस्ट्रिंग की सभी घटनाओं को खोजने का सबसे तेज़ तरीका क्या है?
- 4. मैचों की गिनती को खोजने के लिए सबसे प्रभावी तरीका स्ट्रिंग शब्दों की सरणी के खिलाफ है?
- 5. एक खुली फ़ाइल खोजने के लिए lsof का उपयोग करने का सबसे तेज़ तरीका क्या है?
- 6. सरणी से सबसे कम पाने के लिए सबसे तेज़ तरीका
- 7. सी # में सरणी के लिए आवृत्ति वितरण की गणना करने का सबसे तेज़ तरीका क्या है?
- 8. मैचों की संख्या
- 9. शीर्ष 3 संख्याओं को खोजने के लिए सबसे तेज़ और सबसे प्रभावी तरीका?
- 10. अनियमित आकार वाले बहुभुज के "दृश्य" केंद्र को खोजने का सबसे तेज़ तरीका क्या है?
- 11. स्ट्रिंग्स (पायथन) की बड़ी फ़ाइल में आंशिक स्ट्रिंग मैचों को खोजने का सबसे प्रभावी तरीका
- 12. सरणी में संख्याओं के जोड़े के बीच न्यूनतम अंतर खोजने के लिए सबसे तेज़ एल्गोरिदम क्या है?
- 13. दो बाइट सरणी की तुलना करने का सबसे तेज़ तरीका क्या है?
- 14. इनपुट के लिए सबसे समान स्ट्रिंग खोजने का सबसे तेज़ तरीका?
- 15. structs की सरणी बनाने का सबसे आसान तरीका क्या है?
- 16. एकाधिक गुणों में सूची <T> सूची खोजने का सबसे तेज़ तरीका क्या है?
- 17. क्रियालेख 3 में एक मैच के लिए शब्दों की एक लंबी सूची खोजने के लिए सबसे तेज़ तरीका क्या है?
- 18. टेक्स्ट फ़ाइलों में स्ट्रिंग को खोजने का तेज़ तरीका
- 19. एन-वें मोत्ज़किन संख्या उत्पन्न करने का सबसे तेज़ तरीका क्या है?
- 20. जावा में फ़ाइलों की प्रतिलिपि बनाने का सबसे तेज़ तरीका
- 21. बड़ी संख्या में चेकबॉक्स का चयन करने और उन्हें चुनने का सबसे तेज़ तरीका क्या है?
- 22. पायथन में eigenvalues / वैक्टर खोजने के लिए सबसे तेज़ तरीका क्या है?
- 23. स्थिर सरणी और गतिशील सरणी में तत्वों की संख्या
- 24. एक 2 डी सरणी खोजने के लिए सबसे साफ तरीका?
- 25. पायथन में 2 बार के बीच अंतर खोजने का सबसे आसान तरीका क्या है?
- 26. तारों की सरणी में एक स्ट्रिंग खोजने के लिए सबसे तेज़ एल्गोरिदम?
- 27. PHP: सरणी के अंतिम आइटम को प्राप्त करने का सबसे तेज़ और आसान तरीका क्या है?
- 28. गिटहब खोजने का सबसे अच्छा तरीका क्या है?
- 29. क्या उच्च प्रदर्शन पृष्ठ लिखने का सबसे तेज़ तरीका है?
- 30. सी ++: संख्या और उनकी अनुक्रमणिका की सूची क्रमबद्ध करने का सबसे तेज़ तरीका
क्या यह है कि आप बस दोनों सरणी में मौजूद सभी पूर्णांक की एक अनूठी सूची चाहते हैं? – Thomas
थॉमस की टिप्पणी में जोड़ने के लिए, सरणी आदेश दिया गया है? –
यह डालने का एक और तरीका होगा। दोनों सेटों में एक अनूठी सूची आम है। हाँ, उन्हें आदेश दिया जाता है। –