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

पायथन में क्रमबद्ध सरणी मर्ज करें


मान लीजिए हमारे पास दो क्रमबद्ध सरणी A और B हैं। हमें उन्हें मर्ज करना है और केवल एक क्रमबद्ध सरणी C बनाना है। सूचियों का आकार भिन्न हो सकता है।

उदाहरण के लिए, मान लीजिए A = [1,2,4,7] और B = [1,3,4,5,6,8], तो मर्ज की गई सूची C [1,1,2,3,4,4,5,6,7,8] होगी।

हल करने के चरण

  • i := 0, j := 0 और end := A की लंबाई - 1 परिभाषित करें
  • जब तक end >= 0 और not A[end],
    • end := end - 1
  • जब तक j < B की लंबाई
    • यदि i > end और not A[i], तो A[i] := B[j], और j को 1 से बढ़ाएं
    • अन्यथा यदि A[i] > B[j], तो shift(A, i) करें, A[i] := B[j], end और j को 1 से बढ़ाएं
    • i को 1 से बढ़ाएं

shift मेथड नीचे की तरह काम करेगा:

  • इनपुट num_arr, और i लें
  • j := num_arr की लंबाई - 1
  • जब तक not num_arr [j] करें j := j - 1
  • जब तक j >= i, करें num_arr[j + 1] = num_arr[j], और j := j - 1

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

उदाहरण

class Solution(object):
    def merge(self, nums1, m, nums2, n):
        i = 0
        j = 0
        end = len(nums1)-1
        while end>=0 and not nums1[end]:
            end-=1
        while j<len(nums2) :
            if i>end and not nums1[i]:
                nums1[i] = nums2[j]
                j+=1
            elif nums1[i]>nums2[j]:
                self.shift(nums1,i)
                nums1[i] = nums2[j]
                end+=1
                j+=1
            i+=1
        return nums1

    def shift(self,num,i):
        j = len(num)-1
        while not num[j]:
            j-=1
        while j>=i:
            num[j+1] = num[j]
            j-=1

ob = Solution()
print(ob.merge([1,2,3,0,0,0],3,[2,5,6],3))

इनपुट

[1,2,3,0,0,0] [2,5,6]

आउटपुट

[1, 2, 2, 3, 5, 6]

  1. पायथन में मर्ज सॉर्ट समझाया गया पायथन में मर्ज सॉर्ट समझाया गया

    मर्ज सॉर्ट एक सॉर्टिंग तकनीक है। यह एक कुशल सॉर्टिंग एल्गोरिथम है जिसकी टाइम कॉम्प्लेक्सिटी O(n log n) होती है जहां n सॉर्ट की जाने वाली ऐरे की लंबाई है। मर्ज सॉर्ट एक एल्गोरिथम है जो डिवाइड एंड कंकर पैराडाइम का पालन करता है। यह लगातार ऐरे को दो समान हिस्सों में विभाजित करता है। बाद में यह सिंगल एल

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

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

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

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