Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में रिलेटिव सॉर्ट ऐरे


मान लीजिए हमारे पास दो ऐरे arr1 और arr2 हैं, arr2 के एलिमेंट्स यूनिक हैं, और arr2 में मौजूद सभी एलिमेंट्स arr1 में भी मौजूद हैं। हमें arr1 के एलिमेंट्स को इस तरह सॉर्ट करना है कि arr1 में आइटम्स का रिलेटिव ऑर्डरिंग arr2 में जैसा है वैसा ही हो। यदि कुछ एलिमेंट्स हैं जो arr2 में मौजूद नहीं हैं, तो उन्हें arr1 के अंत में आरोही क्रम में रखा जाना चाहिए। इसलिए यदि arr1 [2,3,1,3,2,4,6,7,9,2,19] की तरह है, और arr2 [2,1,4,3,9,6] की तरह है, तो परिणाम [2,2,2,1,4,3,3,9,6,7,19] होगा।

समाधान के चरण

  • D नामक एक मैप बनाएं, और arr1 में मौजूद एलिमेंट्स की फ्रीक्वेंसी स्टोर करें
  • res और temp नामक दो ऐरे परिभाषित करें
  • arr2 में प्रत्येक एलिमेंट i के लिए
    • j को 0 से D[i] - 1 तक की रेंज में
      • i को res में जोड़ें
    • D[i] := 0
  • D में (key, value) pair के लिए
    • यदि value 0 नहीं है, तो
      • i := 0 से value - 1 तक
        • key को temp में जोड़ें
  • temp ऐरे को सॉर्ट करें, temp को res के अंत में जोड़ें, और res लौटाएं

उदाहरण

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

class Solution(object):
    def relativeSortArray(self, arr1, arr2):
        d = {}
        for i in arr1:
            if i not in d:
                d[i] = 1
            else:
                d[i] += 1
        res = []
        temp = []
        for i in arr2:
            for j in range(d[i]):
                res.append(i)
            d[i] = 0
        for k, v in d.items():
            if v:
                for i in range(v):
                    temp.append(k)
        temp.sort()
        res.extend(temp)
        return res

ob1 = Solution()
print(ob1.relativeSortArray([2,3,1,4,2,4,6,7,9,2,19], [2,1,4,3,9,6]))

इनपुट

[2,3,1,3,2,4,6,7,9,2,19] [2,1,4,3,9,6]

आउटपुट

[2, 2, 2, 1, 4, 4, 3, 9, 6, 7, 19]

  1. पायथन प्रोग्राम: काउंटिंग सॉर्ट पायथन प्रोग्राम: काउंटिंग सॉर्ट

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक सरणी दी गई है, हमें काउंटिंग सॉर्ट की अवधारणा का उपयोग करके सरणी को क्रमबद्ध करना है। काउंटिंग सॉर्ट एक तकनीक है जिसमें हम एक विशिष्ट सीमा के बीच कीज़ पर काम करते हैं। इसमें विशिष्ट कुंजी और मान वाले ऑब्जेक्ट की संख्या गिनन

  1. पायथन प्रोग्राम में इंसर्शन सॉर्ट पायथन प्रोग्राम में इंसर्शन सॉर्ट

    इस लेख में, हम पायथन 3.x में इंसर्शन सॉर्ट के कार्यान्वयन के बारे में सीखेंगे। या इससे पहले। एल्गोरिदम इनपुट एलिमेंट्स पर इटरेट करें और प्रत्येक इटरेशन में सॉर्टेड ऐरे को बढ़ाएं। वर्तमान एलिमेंट की तुलना सॉर्टेड ऐरे में उपलब्ध सबसे बड़े मान से करें। यदि वर्तमान एलिमेंट बड़ा है, तो यह एलिमेंट को उ

  1. पायथन प्रोग्राम: इंसर्शन सॉर्ट एल्गोरिदम पायथन प्रोग्राम: इंसर्शन सॉर्ट एल्गोरिदम

    इस लेख में, हम पायथन 3.x या उससे पहले के संस्करण में इंसर्शन सॉर्ट के कार्यान्वयन के बारे में जानेंगे।एल्गोरिदम1. प्रत्येक पुनरावृत्ति पर सॉर्टेड सरणी को बढ़ाते हुए इनपुट तत्वों पर पुनरावृति करें।2. वर्तमान तत्व की तुलना सॉर्टेड सरणी में उपलब्ध सबसे बड़े मान से करें।3. यदि वर्तमान तत्व बड़ा है, तो इ