Com implementar la classificació de combinació en C ++ amb exemples



Aquest article us proporcionarà un coneixement detallat i exhaustiu de Merge Sort en C ++, com funciona amb exemples.

Què és el tipus de combinació? La combinació d’ordenació és un algorisme d’ordenació basat en la comparació que pertany a la categoria divideix i conquesta. L’ordenació de combinació s’utilitza per ordenar una matriu basada en l’estratègia de divisió i conquesta que es tractarà breument en aquest post juntament amb altres conceptes com ara el seu algorisme amb un exemple. També veurem la complexitat temporal de l’ordenació de combinació en C ++

Les següents indicacions es tractaran en aquest article,





Continuem amb aquest article sobre Merge Sort in C ++

Dividir i conquerir l'algorisme

Si ja esteu familiaritzats amb el funcionament de quicksort, és possible que sigueu conscients de l'estratègia de dividir i conquerir. Dividir i conquerir implica tres passos principals. Per entendre aquests passos, considerem una matriu Hola [] que té l’índex inicial ‘a’ i l’índex final ‘n’, per tant, podem escriure la nostra matriu de la següent manera Hola [a & hellip..n]



Dividir: el primer moviment o pas principal de dividir i conquerir és dividir el problema donat en subproblemes o subparts. El problema aquí és que els subproblemes haurien de ser similars al problema original i de mida menor. En el nostre cas, dividirem la nostra matriu en 2 meitats [a & hellip.m] [m + 1 & hellip..n] m es troba al mig d'un índex a i n

Conquer- Quan hàgim acabat de dividir el nostre problema en subproblemes. Resolvem aquests subproblemes de manera recursiva.

Combina: en aquest pas, combinem totes les solucions dels nostres problemes secundaris d’una manera adequada. En altres paraules, combinem dues matrius ordenades diferents per formar una matriu ordenada. Allà tenim la nostra matriu ordenada.



Continuem amb aquest article sobre Merge Sort in C ++

matriu d'objectes en el programa d'exemple de Java

Descripció de l'algorisme d'ordenació de combinació amb un exemple

En aquest punt, sabem quin enfocament utilitzarà el tipus de combinació. Per tant, considerem un exemple i passem per cada pas de Hello [] sense classificar a una matriu ordenada.
Exemple: Hola [10, 3, 7, 1, 15, 14, 9, 22]

Merge-sort-in-C++

A la imatge anterior, vam considerar una matriu no classificada i vam utilitzar el tipus de combinació per obtenir una matriu ordenada. Ara, examinem cada pas i entenem tot l'algorisme

1. En primer lloc, vam considerar una matriu Hola [10, 3, 7, 1, 15, 14, 9, 22] en aquesta matriu hi ha 8 elements en total

2. Com hem vist anteriorment, l'ordenació de fusions utilitza l'enfocament divideix i conquesta per ordenar els elements. Hem trobat m que es troba al centre de la nostra matriu i hem dividit la nostra matriu del mig on m = (a - n) / 2 'a' és l'índex de l'element situat a l'esquerra i n és l'índex de l'element més dret de la nostra matriu .

3. Després de la primera divisió, tenim 2 parts formades per 4 elements cadascuna. Vegem la primera meitat [10, 3, 7, 1].

4. Dividim [10, 3, 7, 1] en 2 parts [10, 3] i [7, 1]. Després, els dividim en [10], [3], [7], [1]. No és possible una divisió addicional ja que no podem calcular m. una llista que conté un sol element sempre es considera ordenada.

5. Com es produeix la fusió? Anem a esbrinar. El primer [10] i [3] es compara i es combina en ordre ascendent [3, 10] de la mateixa manera que obtenim [1, 7]

6. Després, comparem [3, 10] i [1, 7]. Un cop comparats, els combinem en ordre ascendent i obtenim [1, 3, 7, 10].

7. [15, 14, 9, 2] també es divideix i combina de forma similar a la forma [9, 14, 15, 22].

8. En el darrer pas comparem i combinem [15, 14, 9, 2] [9, 14, 15, 22] per donar-nos la nostra matriu ordenadaÉs a dir, [1, 3, 7, 9, 10, 14, 15, 22].

Continuem amb aquest article sobre Merge Sort in C ++

exemple d'objectes java

Pseudocodi per a la combinació

Comenceu si us queda

La funció mergeSort () es diu recursivament per dividir la nostra matriu fins que es converteixi en un element únic i la funció merge () s'utilitza per combinar les matrius ordenades.

Continuem amb aquest article sobre Merge Sort in C ++

Combineu el programa d'ordenació a C ++

#include #include #include fent servir namespace std void merge (int a [], int Firstindex, int m, int Lastindex) // combina les sub-matrius que es creen mentre que la divisió void mergeSort (int a [], int Firstindex, int Lastindex) {if (Firstindexsize int Hola [size], i cout<<'Enter the elements of the array one by one:n' for(i=0 i>Hola [i] cout mergeSort (Hola, 0, mida - 1)<<'The Sorted List isn' for(i=0 i

Sortida-

Continuem amb aquest article sobre Merge Sort in C ++

Complexitat temporal

La complexitat temporal és un aspecte important a tenir en compte quan parlem d’algoritmes. Es considera que la classificació de combinació té una gran complexitat temporal en comparació amb altres algoritmes de classificació.

Temps d'execució del pitjor dels casos: O (n registre n)
Temps d'execució del millor cas: O (n registre n)
Temps mitjà d'execució: O (n registre n)

Amb això, arribem al final d’aquest article Merge Sort in C ++. Si voleu obtenir més informació, consulteu el per Edureka, una empresa d’aprenentatge en línia de confiança. El curs de formació i certificació Java J2EE i SOA d’Edureka està dissenyat per formar-vos tant per a conceptes bàsics com avançats de Java juntament amb diversos marcs Java com Hibernate & Spring.

Tens alguna pregunta? Si us plau, mencioneu-ho a la secció de comentaris d’aquest bloc i us respondrem el més aviat possible.