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

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


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

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

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

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

उदाहरण

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. पायथन प्रोग्राम: मर्ज सॉर्ट पायथन प्रोग्राम: मर्ज सॉर्ट

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक सरणी दी गई है, हमें मर्ज सॉर्ट की अवधारणा का उपयोग करके इसे क्रमबद्ध करना है। यहां हम अधिकतम तत्व को अंत में रखते हैं। यह तब तक दोहराया जाता है जब तक सरणी क्रमबद्ध नहीं हो जाती। उदाहरण # मर्ज फ़ंक्शन def merge(arr, l, m, r)

  1. पायथन प्रोग्राम: पुनरावर्ती मर्ज सॉर्ट पायथन प्रोग्राम: पुनरावर्ती मर्ज सॉर्ट

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

  1. पायथन प्रोग्राम: हीप सॉर्ट पायथन प्रोग्राम: हीप सॉर्ट

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक सरणी दी गई है, हमें हीपसॉर्ट की अवधारणा का उपयोग करके इसे क्रमबद्ध करना है। यहां हम अधिकतम तत्व को अंत में रखते हैं। यह तब तक दोहराया जाता है जब तक सरणी क्रमबद्ध नहीं हो जाती। उदाहरण # हीपिफाई def heapify(arr, n, i): la