Introductie over sorteren in C ++

Met een verzameling elementen om te bestellen, helpt sorteren bij het rangschikken van de elementen in het record op basis van de bestelrelatie. Overweeg een bestandsrecord dat veel informatie bevat. Voor toegang tot een lijst uit de record is het nodig om een ​​sleutelveld te hebben om de huidige locatie van het element aan te wijzen. Overweeg bijvoorbeeld een lijst met namen in de database, deze kan alfabetisch worden gesorteerd. Sorteren heeft een belangrijke rol gespeeld op het gebied van computers en technologie. Laat ons meer zien in dit artikel.

Wat is de sortering in C ++?

Sorteren is het basisconcept dat door de programmeur of onderzoeker wordt gebruikt om de vereiste invoer te sorteren. De volgorde van complexiteit wordt gegeven door 0 (N * log (N)). Het sorteren van een invoer maakt het eenvoudiger om veel problemen op te lossen, zoals zoeken, het maximum- en minimumelement. Hoewel een sortering gegevens in de volgorde rangschikt, is de efficiëntie van het proces erg belangrijk, die is gebaseerd op twee criteria: - Tijd en geheugen vereist om te sorteren op de gegeven gegevens. De tijd wordt gemeten door het tellen van de gebruikte toetsen. Er zijn veel algoritmen beschikbaar om te sorteren. Over het algemeen worden sortering in C ++ onderscheiden in twee typen:

  1. Intern sorteren
  2. Extern sorteren

Syntaxis en voorbeeld

Syntaxis:

C ++ gebruikt de ingebouwde functie sort () voor hun algoritmen, om de containers zoals vectoren, arrays te sorteren.

Sorteren (matrix, matrix + grootte);

Voorbeelden:

#include
using namespace std;
int main ()
(
int ins(12) = ( 19, 13, 5, 27, 1, 26, 31, 16, 2, 9, 11, 21);
cout<<"\nInput list is \n";
for(int i=0;i<12;i++)
(
cout < )
for(int k=1; k<12; k++)
(
int t = ins(k);
int j= k-1;
while(j>=0 && t <= ins(j))
(
ins(j+1) = ins(j);
j = j-1;
)
ins(j+1) = t;
)
cout<<"\nSorted list is \n";
for(int i=0;i<12;i++)
(
cout < )
)
#include
using namespace std;
int main ()
(
int ins(12) = ( 19, 13, 5, 27, 1, 26, 31, 16, 2, 9, 11, 21);
cout<<"\nInput list is \n";
for(int i=0;i<12;i++)
(
cout < )
for(int k=1; k<12; k++)
(
int t = ins(k);
int j= k-1;
while(j>=0 && t <= ins(j))
(
ins(j+1) = ins(j);
j = j-1;
)
ins(j+1) = t;
)
cout<<"\nSorted list is \n";
for(int i=0;i<12;i++)
(
cout < )
)
#include
using namespace std;
int main ()
(
int ins(12) = ( 19, 13, 5, 27, 1, 26, 31, 16, 2, 9, 11, 21);
cout<<"\nInput list is \n";
for(int i=0;i<12;i++)
(
cout < )
for(int k=1; k<12; k++)
(
int t = ins(k);
int j= k-1;
while(j>=0 && t <= ins(j))
(
ins(j+1) = ins(j);
j = j-1;
)
ins(j+1) = t;
)
cout<<"\nSorted list is \n";
for(int i=0;i<12;i++)
(
cout < )
)

Output:

Hoe werkt het?

Om te beginnen nemen we Quick Sort, wat als een belangrijke methode bij verschillende sorteertypen wordt beschouwd. Het basissorteren van een array heeft een Quicksort-aanpak. Er zijn verschillende manieren om sorteren uit te voeren, het doel van elk van deze technieken is hetzelfde als het vergelijken van twee elementen en deze omwisselen met de tijdelijke variabele. In dit artikel bespreken we de belangrijkste sortering die voor de implementatie wordt gebruikt. Volgende zijn:

  1. Bubble Sort
  2. Invoegsortering
  3. Snel sorteren
  4. Selectie sorteren

Er zijn samenvoegsortering, radixsortering, bandsortering die we later kunnen bespreken. Eerst gaan we met Bubble-sortering.

1. Bellen sorteren

Bubbelsortering is een van de eenvoudigste sorteermethoden die we voor toepassingen kunnen gebruiken. In deze techniek worden opeenvolgende swaps gemaakt door de te sorteren records. Bij elke stap vergelijkt het de sleutel tot de gegevens en wisselt het de elementen uit als ze niet in de gewenste volgorde staan. Sorteren gebeurt met de aangrenzende elementen op het moment dat slechts één element op de gesorteerde plaats wordt geplaatst na een swap.

Voorbeeld: Laten we een ongesorteerde array A () = (6, 2, 4, 7, 1) bekijken

62471
A (0)A (1)A (2)A (3)A (4)

Stap 1: Vergelijking van A (0)> A (1), als voorwaarde waar is, wissel het element (6> 2) waar, plaats 2 in A (0). Op dezelfde manier worden alle stappen hetzelfde totdat de array wordt gesorteerd.

Nu is de array A () = (2, 6, 4, 7, 1)

Stap 2: 6 wordt vergeleken met 4. Omdat 6 groter is dan 4. Daarom worden 6 en 4 verwisseld.

Nu is de array A () = (2, 4, 6, 7, 1)

Stap 3: Element 6 wordt vergeleken met 7. Aangezien 6 <2 en de elementen in oplopende volgorde staan, worden de elementen niet verwisseld.

De gesorteerde array is A () = (2, 4, 6, 7, 1).

Ga door met het proces totdat de array is gesorteerd.

2. Invoegsortering

In deze techniek beginnen we met het tweede data-element door aan te nemen dat het eerste element al is gesorteerd en vergelijking wordt gedaan met het tweede element en de stap wordt voortgezet met het andere volgende element. In een array van N-elementen is het noodzakelijk om N-1 doorgangen te hebben om een ​​gesorteerd element te hebben.

Beschouw een array A () = (8, 3, 6, 1)

8361

Stap 1: Het eerste element zoekt naar het grootste element in de array dat moet worden verwisseld. Als het groter is, blijft het hetzelfde en wordt het verplaatst naar het tweede element, hier is 8 groter dan alles, er wordt geen swap gemaakt.

8361

Stap 2: Wisselen met het tweede element

3861

Stap 3: Wisselen met het derde element

3681

Stap 4: Wisselen met het vierde element

1368

3. Snel sorteren

Deze techniek volgt het verdeel en heers algoritme en wordt beschouwd als zeer efficiënt en sneller voor grote arrays. Ze zijn verdeeld in drie subsecties: links, rechts en het midden. Het middelste element heeft een enkele waarde en deze wordt de pivot genoemd. Het mechanisme gaat als volgt, het element in het linkersegment mag geen sleutel hebben die groter is dan het middelste element en het element geen rechts heeft een sleutel die kleiner is dan die van het middelste element. Laten we beginnen met een illustratie van het sorteerproces. Quicksort maakt gebruik van een recursief concept tijdens het sorteren van een onderdeel. De array is verdeeld in een subdeel, opnieuw worden de linker en rechter segmenten gepartitioneerd door te veroveren. Hier in dit voorbeeld is het laatste element draaibaar en wordt het eerste element laag verondersteld. Overweeg een array-element

492211165630

Het nemen van het meest rechtse element heeft het pivot element = 30

162211305649

Het element groter dan het draaipunt wordt naar links geplaatst, rechts kleiner.

1622115649

De wijzer wordt bij het draaipunt geplaatst en is verdeeld rond een draaipunt.

1122165649

De subonderdelen worden afzonderlijk gesorteerd.

111622304956

Eindelijk kregen we een Sorted Array.

4. Selectie sorteren

Deze techniek wordt ook uitwisselingssortering genoemd, voert zoeken en sorteren met twee bewerkingen uit. De implementatie maakt een directe selectie van de selectie zoals hieronder gedefinieerd. Hier is het vereist om het kleinste element dat aanwezig is in de reeks te identificeren en dit element wordt gesorteerd op de eerste ith-positie. Vervolgens wordt het op een na kleinste element geïdentificeerd en op de tweede positie gesorteerd. De selectie sorteert zijn lus wanneer het ongesorteerde subdeel leeg wordt. De tijdcomplexiteit wordt gegeven als O (n 2 ).

Overweeg de volgende reeks:

6326132312

1. Zoek het kleinste element en plaats het aan het begin en het wordt verwisseld met de positie.

1226132363

2. Het tweede element a (1) wordt geïdentificeerd in vergelijking met het minimumelement en plaatst het in de tweede positie, op dezelfde manier gaat de doorgang verder.

1213262364

Laatste gesorteerde uitvoer

1213232664

Conclusie

Tot slot richtte dit artikel zich op sorteerconcepten en hun werkingsmechanisme. Al deze sorteertechnieken gebruiken parallelle verwerkingsconcepten. Sorteren vormt een kernbouwsteen bij het structureren van algoritmen om de problemen van gegevens in de echte wereld op te lossen door de reeks waarden volgens de vereisten te sorteren.

Aanbevolen artikelen

Dit is een gids voor het sorteren in C ++. Hier bespreken we de introductie en de syntaxis met voorbeelden samen met hoe het werkt. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie–

  1. Sorteren in Tableau
  2. Iterator in C ++
  3. Matrixfuncties in C
  4. Heap Sorteer in C
  5. Hoe sorteren wordt uitgevoerd in PHP?
  6. Heap Sort in Python
  7. Iterator op Java
  8. Top 11 kenmerken en voordelen van C ++
  9. Iterator in Python | Voordelen en voorbeelden van Python