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

पायथन में के-सॉर्ट की गई सूचियों को मर्ज करने का कार्यक्रम

मान लीजिए हमारे पास कुछ सूचियां हैं, इन सूचियों को क्रमबद्ध किया गया है। हमें इन सूचियों को एक सूची में मिलाना होगा। इसे हल करने के लिए, हम हीप डेटा संरचना का उपयोग करेंगे। इसलिए यदि सूचियां [1,4,5], [1,3,4], [2,6] हैं, तो अंतिम सूची [1,1,2,3,4,4,5,6] होगी। ।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • n :=सूचियों का आकार
  • ढेर:=एक नई सूची
  • प्रत्येक अनुक्रमणिका i और सूचियों की पंक्ति के लिए[i], करते हैं
    • यदि पंक्ति खाली नहीं है, तो
      • हीप में (पंक्ति [0], i, 0) डालें
  • res :=एक नई सूची
  • जबकि ढेर खाली नहीं है, करें
    • संख्या, पंक्ति, कॉलम:=ढेर का शीर्ष तत्व
    • Res के अंत में num डालें
    • यदि कॉलम <सूचियों का आकार [पंक्ति] -1, तो
      • सूचियां डालें[पंक्ति, कॉलम + 1], पंक्ति, कॉलम + 1 को ढेर में डालें
  • रिटर्न रेस

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

उदाहरण

import heapq
class Solution:
   def solve(self, lists):
      n = len(lists)
      heap = []
      for i, row in enumerate(lists):
         if row:
            heapq.heappush(heap, (row[0], i, 0))
         res = []
         while heap:
            num, row, col = heapq.heappop(heap)
            res.append(num)
         if col < len(lists[row]) - 1:
            heapq.heappush(heap, (lists[row][col + 1], row, col + 1))
      return res
ob = Solution()
lists = [[],[],[11, 13],[],[4, 4, 14],[4],[11],[1, 8]]
print(ob.solve(lists))

इनपुट

[[],[],[11, 13],[],[4, 4, 14],[4],[11],[1, 8]]

आउटपुट

[1, 4, 4, 4, 8, 11, 11, 13, 14]

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

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

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

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

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

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