Fhernd icon

merge_sort.py

Fhernd | PRO | 02/25/26 05:17:23 PM UTC | 0 ⭐ | 12910 👁️ | Never ⏰ | []
Python |

1.24 KB

|

Source Code

|

0 👍

/

0 👎

def merge_sort(arr):
    """
    Implementación del algoritmo Merge Sort.
    Divide la lista en mitades, ordena cada mitad
    y luego las fusiona ordenadamente.
    """
    if len(arr) <= 1:
        return arr
 
    # Dividir la lista en dos mitades
    mid = len(arr) // 2
    left = arr[:mid]
    right = arr[mid:]
 
    # Llamada recursiva para ordenar ambas mitades
    left_sorted = merge_sort(left)
    right_sorted = merge_sort(right)
 
    # Combinar las dos mitades ordenadas
    return merge(left_sorted, right_sorted)
 
 
def merge(left, right):
    """
    Fusiona dos listas ordenadas en una sola lista ordenada.
    """
    result = []
    i = j = 0
 
    # Comparar elementos y fusionar
    while i < len(left) and j < len(right):
        if left[i] <= right[j]:
            result.append(left[i])
            i += 1
        else:
            result.append(right[j])
            j += 1
 
    # Agregar elementos restantes (si los hay)
    result.extend(left[i:])
    result.extend(right[j:])
 
    return result
 
 
# Ejemplo de uso
if __name__ == "__main__":
    data = [38, 27, 43, 3, 9, 82, 10]
    print("Lista original:", data)
 
    sorted_data = merge_sort(data)
    print("Lista ordenada:", sorted_data)

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎