Hoe de sorteerfunctie in C ++ te implementeren?



Dit artikel helpt je bij het verkennen van de Sort-functie in c ++ en geeft je tijdens het proces een gedetailleerde demonstratie van het concept

Sorteren is een van de meest elementaire en nuttige functies die op gegevens worden toegepast. Het is bedoeld om gegevens op een bepaalde manier te ordenen, die afhankelijk van de vereisten kan toenemen of afnemen. Er is een ingebouwde functie in C ++ STL met de naam ‘sort ()’ waarmee we gemakkelijk een sorteeralgoritme kunnen uitvoeren. In dit artikel zullen we de sorteerfunctie in C ++ onderzoeken,

De volgende aanwijzingen komen in dit artikel aan bod:





Verder gaan met dit artikel over de sorteerfunctie in C ++

Soort ( ) functie

Het is een ingebouwde functie van het algoritme-headerbestand dat wordt gebruikt om de containers als een array te sorteren, vectoren in een opgegeven volgorde. Intern is deze functie geïmplementeerd als Quick-sort
Quicksort is een verdeel en heers-algoritme. Quicksort verdeelt eerst een grote lijst met elementen in twee kleinere sublijsten: de lagere elementen en de hogere elementen. Quicksort en vervolgens recursief de sublijsten sorteren.



De stappen zijn als volgt:
1. Kies een willekeurig element (meestal het laatste element), een spil genoemd, uit de lijst.
2. Herschik de lijst zodanig dat alle elementen met waarden kleiner dan het draaipunt vóór het draaipunt komen, terwijl alle elementen met waarden groter dan het draaipunt erachter komen en gelijke waarden beide kanten op kunnen. Dit proces wordt partitiebewerking genoemd.
3. Sorteer de sublijst met mindere elementen en de sublijst met grotere elementen recursief, selecteer opnieuw een draaipunt in de sublijst en verdeel ze.
Het basisscenario van de recursie zijn lijsten met grootte nul of één, die nooit hoeven te worden gesorteerd en dus door ze te combineren, sorteren we onze lijst.

Quicksort is in de praktijk sneller dan andere O (n log n) algoritmen zoals Insertion Sort of Bubble sort. Quicksort kan worden geïmplementeerd met een in-place partitioneringsalgoritme, wat betekent dat het hele sorteren kan worden gedaan met alleen O (log n) extra ruimte. Quicksort is geen stabiele soort.
De complexiteit is als volgt:
Beste geval - O (n log n)
Worst Case - O (n ^ 2)
Gemiddeld geval - O (n log n)

Syntaxis:
sorteren (eerste, laatste)
Hier,
first - is de index (pointer) van het eerste element in het bereik dat moet worden gesorteerd.
last - is de index (pointer) van het laatste element in het bereik dat moet worden gesorteerd.
We willen bijvoorbeeld elementen van een array ‘arr’ sorteren van 1 tot 10 posities, we gebruiken sort (arr, arr + 10) en het sorteert 10 elementen in oplopende volgorde.
Winstwaarde
Geen



Complexiteit

Het gemiddelde van een sorteercomplexiteit is N * log2 (N), waarbij N = laatste - eerst.

Data bereik
Het object in het bereik [eerste, laatste) wordt gewijzigd.

Uitzonderingen
De overbelasting met een sjabloonparameter met de naam ExecutionPolicy rapporteert fouten als volgt:
Als het algoritme er niet in slaagt geheugen toe te wijzen, wordt std :: bad_alloc als uitzondering gegenereerd.
Als de uitvoering van een functie wordt aangeroepen als onderdeel van het algoritme, genereert het een uitzondering std :: terminate.

Verder gaan met dit artikel over de sorteerfunctie in C ++

Voorbeeld - om gegevens in oplopende volgorde te sorteren:

#include using namespace std int main () {int array [] = {10, 35, 85, 93, 62, 77, 345, 43, 2, 10} int n = sizeof (array) / sizeof (array [0] ) // 'sizeof' geeft de grootte van de totale array, dwz de grootte van elk teken * no. van karakters // dus om nee te krijgen. van tekens // we delen de sizeof (array) met de grootte van een willekeurig teken van de array // hier is het array [0] sort (array, array + n) cout<< 'nArray after sorting using ' 'default sort is : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Uitgang:

Uitvoersorteerfunctie in C ++ - Edureka

standaardwaarde van char in java

Uitleg

In het bovenstaande voorbeeld zien we dat de functie sort () standaard een array in oplopende volgorde sorteert.

Verder gaan met dit artikel over de sorteerfunctie in C ++

Voorbeeld - om gegevens in aflopende volgorde te sorteren:

Om de gegevens van de array in aflopende volgorde te sorteren, moeten we een derde parameter introduceren die wordt gebruikt om de volgorde te specificeren waarin elementen moeten worden gesorteerd. We kunnen de functie 'groter ()' gebruiken om de gegevens in aflopende volgorde te sorteren.

#include using namespace std int main () {int array [] = {41, 53, 4, 459, 60, 7, 23, 4, 232, 10} int n = sizeof (array) / sizeof (array [0] ) sort (array, array + n, groter ()) cout<< 'Array after sorting : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Uitgang:

Exp l een natie
Hier doet de functie sort () een vergelijking op een manier die een groter element ervoor plaatst.

Verdergaan met dit artikel over de sorteerfunctie in C ++

Gedeeltelijke_sortering

C ++ STL biedt ons een gedeeltelijke sorteerfunctie, de functie is vergelijkbaar met de functie sort (), maar in tegenstelling tot de functie sort () wordt het niet gebruikt om het hele bereik te sorteren, maar wordt het gebruikt om slechts een subonderdeel ervan te sorteren. Het sorteert de elementen in het bereik van [eerste, laatste), zodanig dat de elementen voor het middelste element in oplopende volgorde worden gesorteerd, terwijl de elementen na het midden blijven zoals ze zijn.

Het kan worden gebruikt om het grootste element te vinden als we een functieobject gebruiken om op de eerste positie te sorteren

Voorbeeld

#include #include #include met naamruimte std int main () {vector vec = {10, 45, 60, 78, 23, 21, 30} vector :: iterator iptr gedeeltelijke_sortering (vec.begin (), vec.begin () + 1, vec.end (), groter ()) iptr = vec.begin () cout<< 'The largest element is = ' << *iptr return 0 } 

Uitgang:

Uitleg:
De bovenstaande code kan worden gebruikt om het grootste nummer in een reeks te vinden, om het kleinste nummer in een reeks te vinden, hoeven we alleen de grotere opdracht te verwijderen.

Hiermee zijn we aan het einde gekomen van dit artikel over ‘Sorteerfunctie in C ++’. Als je meer wilt weten, bekijk dan de Java Training van Edureka, een vertrouwd online leerbedrijf. Edureka's cursussen zijn ontworpen om u te trainen voor zowel kern- als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van deze blog en we nemen zo snel mogelijk contact met je op.

hoe een klasse in python te initialiseren