Aquest bloc es basa en l'enfocament de dividir i conquerir. Merge Sort és un algorisme de 'dividir i conquerir' on el problema es divideix en subproblemes i després es fusiona per conquerir la solució. Aquest bloc sobre Fusiona Ordena a us guiarà detalladament pels temes següents:
- Què és Classificació de combinació a Python?
- L’enfocament Dividir i Conquerir
- Implementació de la classificació de combinació a Python
- Diagrama de flux per a la implementació de Merge Sort
- Avantatges i ús
Què és Classificació de combinació a Python?
La combinació d’ordenació es basa en l’algoritme divideix i conquesta, on la matriu d’entrada es divideix en dues meitats, i després s’ordena per separat i es torna a combinar per arribar a la solució. La funció merge () s’utilitza per combinar l’ordenat .
L’enfocament Dividir i Conquerir
- La matriu es divideix per la meitat i el procés es repeteix amb cada meitat fins que cada meitat té la mida 1 o 0.
- La matriu de la mida 1 està ordenada trivialment.
- Ara les dues matrius ordenades es combinen en una gran matriu. I això es continua fins que es combinen tots els elements i s'ordena la matriu.
Aquí teniu una visualització del tipus de combinació per esborrar-vos la imatge
Matriu d’entrada = [3,1,4,1,5,9,2,6,5,4]
final finalment i finalitzar a Java
Ara anem a la implementació.
Implementació de la classificació de combinació a Python
def mergeSort (nlist): print ('Dividint', nlist) if len (nlist)> 1: mid = len (nlist) // 2 lefthalf = nlist [: mid] righthalf = nlist [mid:] mergeSort (half left) mergeSort (mig dret) i = j = k = 0 mentre que iSortida:
$ python main.py
('Dividir', [3, 1, 4, 1, 5, 9, 2, 6, 5, 4])
('Dividir', [3, 1, 4, 1, 5])
('Dividir', [3, 1])
('Dividir', [3])
('Fusió', [3])
('Dividir', [1])
('Fusió', [1])
('Fusió', [1, 3])
('Dividir', [4, 1, 5])
('Dividir', [4])
('Fusió', [4])
('Dividir', [1, 5])
('Dividir', [1])
('Fusió', [1])
('Dividir', [5])
('Fusió', [5])
('Fusió', [1, 5])
('Fusió', [1, 4, 5])
('Fusió', [1, 1, 3, 4, 5])
('Dividir', [9, 2, 6, 5, 4])
('Dividir', [9, 2])
('Dividir', [9])
('Fusió', [9])
('Dividir', [2])
('Fusió', [2])
('Fusió', [2, 9])
('Dividir', [6, 5, 4])
('Dividir', [6])
('Fusió', [6])
('Dividir', [5, 4])
('Dividir', [5])
('Fusió', [5])
('Dividir', [4])
('Fusió', [4])
('Fusió', [4, 5])
('Fusió', [4, 5, 6])
('Fusió', [2, 4, 5, 6, 9])
('Fusió', [1, 1, 2, 3, 4, 4, 5, 5, 6, 9])
[1, 1, 2, 3, 4, 4, 5, 5, 6, 9]
abstracció de dades en c ++Diagrama de flux per a la implementació de Merge Sort
Avantatges i ús del Merge Sort
La majoria dels altres algoritmes funcionen malament amb estructures de dades seqüencials, com ara fitxers i llistes enllaçades. En aquestes estructures l'accés a un element aleatori requereix temps lineal, no temps constant regular. I la naturalesa del tipus de combinació fa que sigui fàcil i ràpid per a aquestes estructures de dades.Una de les millors característiques de la classificació de combinacions és el seu baix nombre de comparacions. Fa O (n * log (n)) el nombre de comparacions, però el factor constant és bo en comparació amb el quicksort, cosa que el fa útil quan la funció de comparació és una operació lenta.A més, l'enfocament de dividir i conquerir del tipus de combinació fa que sigui convenient per al processament en paral·lel.
Amb això, arribem al final d’aquest bloc sobre “Com implementar la combinació d’ordenació a Python”. Espero que el contingut afegeixi un cert valor al vostre coneixement de Python. Per obtenir coneixements en profunditat sobre Python juntament amb les seves diverses aplicacions, podeu inscriure-us a la publicació amb assistència les 24 hores del dia, els 7 dies de la setmana i accés permanent.