logo

Programa Python per a l'ordenació de combinacions

Merge Sort és un Divideix i conquereix algorisme. Divideix la matriu d'entrada en dues meitats, s'anomena per les dues meitats i després fusiona les dues meitats ordenades. La funció merge(). s'utilitza per fusionar dues meitats. La fusió (arr, l, m, r) és un procés clau que suposa que arr[l..m] i arr[m+1..r] s'ordenen i fusiona les dues submatrius ordenades en una sola.

Programa Python per a l'ordenació de combinacions

El proporcionat Python el codi implementa l'algoritme Merge Sort, una tècnica d'ordenació dividida i vençuda. Desglossa una matriu en subarrays més petits, els ordena individualment i després els torna a fusionar per crear una matriu ordenada. El codi inclou dues funcions principals: merge, responsable de fusionar dos subbarrays, i mergeSort, que divideix i ordena de forma recursiva la matriu. La funció de combinació combina dos subarrays ordenats en una única matriu ordenada. La funció mergeSort divideix recursivament la matriu per la meitat fins que cada subbarray té un sol element, i després els fusiona per aconseguir el resultat final ordenat. L'exemple ordena una matriu mitjançant Merge Sort i imprimeix les matrius inicials i ordenades.

convertir una cadena en un enter

Python 3




cadena per xerrar



# Python program for implementation of MergeSort> # Merges two subarrays of arr[].> # First subarray is arr[l..m]> # Second subarray is arr[m+1..r]> def> merge(arr, l, m, r):> >n1>=> m>-> l>+> 1> >n2>=> r>-> m> ># create temp arrays> >L>=> [>0>]>*> (n1)> >R>=> [>0>]>*> (n2)> ># Copy data to temp arrays L[] and R[]> >for> i>in> range>(>0>, n1):> >L[i]>=> arr[l>+> i]> >for> j>in> range>(>0>, n2):> >R[j]>=> arr[m>+> 1> +> j]> ># Merge the temp arrays back into arr[l..r]> >i>=> 0> # Initial index of first subarray> >j>=> 0> # Initial index of second subarray> >k>=> l># Initial index of merged subarray> >while> i and j if L[i] <= R[j]: arr[k] = L[i] i += 1 else: arr[k] = R[j] j += 1 k += 1 # Copy the remaining elements of L[], if there # are any while i arr[k] = L[i] i += 1 k += 1 # Copy the remaining elements of R[], if there # are any while j arr[k] = R[j] j += 1 k += 1 # l is for left index and r is right index of the # sub-array of arr to be sorted def mergeSort(arr, l, r): if l # Same as (l+r)//2, but avoids overflow for # large l and h m = l+(r-l)//2 # Sort first and second halves mergeSort(arr, l, m) mergeSort(arr, m+1, r) merge(arr, l, m, r) # Driver code to test above arr = [12, 11, 13, 5, 6, 7] n = len(arr) print('Given array is') for i in range(n): print('%d' % arr[i],end=' ') mergeSort(arr, 0, n-1) print(' Sorted array is') for i in range(n): print('%d' % arr[i],end=' ') # This code is contributed by Mohit Kumra>

>

cadena a char

>

Sortida

Given array is 12 11 13 5 6 7 Sorted array is 5 6 7 11 12 13>

Complexitat temporal: O(n*log(n))

Espai auxiliar: O(n)

capa de xarxa a les xarxes d'ordinadors

Consulteu l'article complet sobre Fusionar Ordenar per a més detalls!