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 और अंत :=A – 1 की लंबाई परिभाषित करें
  • अंत में>=0 और नहीं A[end],
    • अंत:=अंत – 1
  • जबकि j <बी की लंबाई
    • यदि i> समाप्त होता है और A[i] नहीं, तो A[i] :=B[j], और j को 1 से बढ़ाएं
    • अन्यथा यदि A[i]> B[j], तो शिफ्ट (A, i), A[i] :=B[j] करें, अंत और j को 1 से बढ़ाएं
    • मैं 1 से बढ़ाएँ

शिफ्ट विधि नीचे की तरह काम करेगी -

  • इनपुट num_arr लें, और मैं
  • j :=num_arr की लंबाई - 1
  • जबकि num_arr नहीं [j] do 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. पायथन में मर्ज सॉर्ट की व्याख्या करें

    मर्ज सॉर्ट एक सॉर्टिंग तकनीक है। यह एक कुशल छँटाई एल्गोरिथ्म है जिसकी समय जटिलता (n logn .) है ) जहां n क्रमबद्ध करने के लिए सरणी की लंबाई है। मर्ज सॉर्ट एक एल्गोरिथम है जो डिवाइड एंड कॉनक्वेर्स प्रतिमान का अनुसरण करता है। यह सरणी को लगातार दो बराबर हिस्सों में विभाजित करता है। बाद में यह प्रत्येक

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

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

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

    इस लेख में, हम पायथन 3.x में इंसर्शन सॉर्ट के कार्यान्वयन के बारे में जानेंगे। या पहले। एल्गोरिदम 1. Iterate over the input elements by growing the sorted array at each iteration. 2. Compare the current element with the largest value available in the sorted array. 3. If the current element is greate