2012-10-11 13 views
5

तो, सवाल स्पष्ट करने के लिए:वस्तुओं के दो सेट। सेट एक के प्रत्येक तत्व सेट बी मैच में एक अद्वितीय मैच प्रत्येक ओ (nlogn) में सेट बी में आइटम करने के लिए सेट एक के मद समय

सेट एक और सेट बी हर तत्व सेट ए में सेट बी में कोई भागीदार है, आप इसे एक ही सेट के सदस्यों से तुलना करने के आधार पर सेट को सॉर्ट नहीं कर सकते हैं, यानी बी के प्रत्येक बी तत्व बी के किसी भी अन्य बी (इसी प्रकार ए के लिए) से अलग नहीं है। जब ऐ के साथ मिलान किया जाता है तो आप बता सकते हैं कि Bi > Ai, Bi < Ai या Bi = Ai है। ओ (nlogn) चलने का समय के साथ एक एल्गोरिदम डिजाइन।

वर्गबद्ध समय के साथ स्पष्ट उत्तर छोटा और सहायक नहीं है - हालांकि यह अभी तक का सबसे अच्छा है। लॉग (एन) मुझे लगता है कि मुझे किसी प्रकार के रिकर्सन या बाइनरी पेड़ का उपयोग करना चाहिए, लेकिन मुझे यकीन नहीं है कि एक ही सेट से तत्वों की तुलना करने के बिना बाइनरी पेड़ कैसे बना सकता है। साथ ही, मुझे यकीन नहीं है कि लूप के लिए नेस्टेड चलाने की तुलना में किसी भी बड़े प्रभाव के लिए रिकर्सिव कॉल का उपयोग कैसे करें। कोई भी युक्ति सराहनीय होगी।

+0

उन्हें सॉर्ट करें और सभी तत्वों के माध्यम से जाने के लिए एक लूप का उपयोग करें। यदि आपके पास शुरुआत से सेट डेटा संरचना है, तो आप इसके माध्यम से इटेटर और लूप ले सकते हैं। – nhahtdh

+0

तो आप कह रहे हैं कि ए और बी एक दूसरे के साथ तुलनीय नहीं हैं, लेकिन आप प्रत्येक ए को प्रत्येक बी से तुलना कर सकते हैं और 'ए == बी' जैसे जोड़े को ढूंढने की आवश्यकता है? – verdesmarald

+0

यह समस्या मूल रूप से मिलानिंग नट्स और बोल्ट की समस्या के समान है जैसा कि गोवायाक्ट द्वारा बताया गया है। हालांकि ध्यान के लिए धन्यवाद। – slmyers

उत्तर

9

आपने इसे स्पष्ट रूप से नहीं बताया है, लेकिन आपका प्रश्न संदिग्ध रूप से Matching Nuts and Bolts समस्या की तरह दिखता है।

एक यादृच्छिक अखरोट लेने का विचार है, मिलान बोल्ट बी खोजें। बोल्ट बी का उपयोग करके बोल्ट को विभाजित करें, और बोल्ट बी का उपयोग करके पागल विभाजन करें, और फिर रिकर्स की तरह रिकर्स करें।

(बेशक, हम सबसे खराब मामले के बजाय, औसत मामले को पहचानने के बारे में बात कर रहे हैं)।

+1

आपको बहुत बहुत धन्यवाद, यह बहुत उपयोगी था। मैं भविष्य में और अधिक स्पष्ट होने की कोशिश करूंगा, और अगर मैं प्रतिष्ठा रखूं तो मैं आपको वोट दूंगा। – slmyers

संबंधित मुद्दे