शुरू करेंमुफ़्त में शुरू करें

Merge sort एल्गोरिदम में एक बग ठीक करना

आपको एक प्रोग्राम दिया गया है जो merge sort एल्गोरिदम का उपयोग करके नंबरों की एक लिस्ट को sort करता है. merge_sort() फंक्शन की टेस्टिंग करते समय, आपको एहसास होता है कि कोड सही नहीं है. क्या आप एल्गोरिदम को ठीक कर सकते हैं ताकि यह सही तरह से काम करे?

यह अभ्यास पाठ्यक्रम का हिस्सा है

Python में Data Structures और Algorithms

पाठ्यक्रम देखें

अभ्यास निर्देश

  • बाएँ हिस्से को असाइन करते समय हुई गलती को ठीक करें.
  • दाएँ हिस्से को असाइन करते समय हुई गलती को ठीक करें.
  • बाएँ हिस्से के लिए पॉइंटर अपडेट करते समय हुई गलती को ठीक करें.
  • दाएँ हिस्से के लिए पॉइंटर अपडेट करते समय हुई गलती को ठीक करें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

def merge_sort(my_list):
    if len(my_list) > 1: 
        mid = len(my_list)//2
        left_half = my_list[:mid]
        right_half = my_list[mid:]
        
        merge_sort(left_half)
        merge_sort(right_half)
 
        i = j = k = 0
 
        while i < len(left_half) and j < len(right_half):
            if left_half[i] < right_half[j]:
        		# Correct mistake when assigning left half
                my_list[k] = right_half[i]                
                i += 1
            else:
                # Correct mistake when assigning right half
                my_list[k] = left_half[j]
                j += 1
            k += 1
            
        while i < len(left_half):
            my_list[k] = left_half[i]
            # Correct mistake when updating pointer for left half
            j += 1
            k += 1
 
        while j < len(right_half):
            my_list[k] = right_half[j]
            # Correct mistake when updating pointer for right half
            i += 1
            k += 1

my_list = [35,22,90,4,50,20,30,40,1]
merge_sort(my_list)
print(my_list)
कोड संपादित करें और चलाएँ