Merge Sort

Il linguaggio permette decine (…) di approcci diversi per lo stesso algoritmo

def mergeSort(Array):
    if len(Array) > 1:
        # print("Spezzo... ", Array)
        centro=len(Array)//2
        Array1=Array[:centro]
        Array2=Array[centro:]
        mergeSort(Array1)
        mergeSort(Array2)

        i=0
        j=0
        k=0
        while i < len(Array1) and j < len(Array2):
            if Array1[i] < Array2[j]:
               Array[k]=Array1[i]
               i=i+1
            else:
               Array[k]=Array2[j]
               j=j+1
            k=k+1
        while i < len(Array1):
            Array[k]=Array1[i]
            i=i+1
            k=k+1
        while j < len(Array2):
            Array[k]=Array2[j]
            j=j+1
            k=k+1
        # print("Fondo... ", Array)

mergeSort(UnArray)