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

Python - K मर्ज सॉर्ट कॉल्स की आवश्यकता वाली ऐरे ढूंढना

मान लीजिए हमारे पास दो संख्याएं a और b हैं, हमें [1, a] रेंज में वैल्यूज़ वाली एक ऐरे ढूंढनी है जिसमें रिकर्सिव मर्ज सॉर्ट फंक्शन के ठीक b कॉल्स की आवश्यकता होती है।

तो, यदि इनपुट a = 10, b = 15 जैसा है, तो आउटपुट [3, 1, 4, 6, 2, 8, 5, 9, 10, 7] होगा।

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

  • solve() फंक्शन डिफाइन करें। यह left, right, array, b लेगा
  • यदि b < 1 या left + 1, right के समान है, तो
    • वापस लौटें
  • b := b - 2
  • mid := (left + right) // 2
  • temp := array[mid - 1]
  • array[mid-1] := array[mid]
  • array[mid] := temp
  • solve(left, mid, array, b)
  • solve(mid, right, array, b)
  • मेन मेथड से निम्नलिखित करें:
    • यदि b % 2 == 0, तो
      • "None" प्रदर्शित करें
      • वापस लौटें
    • array := आकार n + 1 की ऐरे, 0 से भरी
    • array[0] := 1
    • i को 1 से a तक रेंज में, करें
      • array[i] := i + 1
    • b := b - 1
    • solve(0, a, array, b)
    • array, a लौटाएं

    उदाहरण

    बेहतर समझ के लिए निम्नलिखित इम्प्लीमेंटेशन देखें:

    def solve(left, right, array, b):
        if b < 1 or left + 1 == right:
            return
        b -= 2
        mid = (left + right) // 2
        temp = array[mid - 1]
        array[mid - 1] = array[mid]
        array[mid] = temp
        solve(left, mid, array, b)
        solve(mid, right, array, b)
    
    def find_arr(a, b):
        if b % 2 == 0:
            print("None")
            return
        array = [0] * (a + 2)
        array[0] = 1
        for i in range(1, a):
            array[i] = i + 1
        b -= 1
        solve(0, a, array, b)
        return array, a
    
    a = 10
    b = 15
    array, size = find_arr(a, b)
    print(array[:size])

    इनपुट

    10, 15

    आउटपुट

    [3, 1, 4, 6, 2, 8, 5, 9, 10, 7]
  1. पायथन में मर्ज सॉर्ट समझाया गया पायथन में मर्ज सॉर्ट समझाया गया

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

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

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

  1. - Python में Number वाले String को Correctly Sort कैसे करें?

    Natural Sort / Human Sort इस प्रकार का Sort जिसमें आप String के अंदर Numbers के Basis पर Sort करना चाहते हैं, उसे Natural Sort या Human Sort कहते हैं। उदाहरण यदि आपके पास Text है: [Hello1, Hello12, Hello29, Hello2, Hello17, Hello25] तो आप Sorted List चाहते हैं: [Hello1, Hello2, Hello12, Hello17,