Hvordan implementere sorteringsfunksjon i C ++?



Denne artikkelen vil hjelpe deg med å utforske sorteringsfunksjonen i c ++ og i prosessen gi deg en detaljert demonstrasjon av konseptet

Sortering er en av de mest grunnleggende og nyttige funksjonene som brukes på data. Det tar sikte på å ordne data på en bestemt måte, som kan øke eller synke i henhold til kravene. Det er en innebygd funksjon i C ++ STL med navnet ‘sort ()’ som lar oss enkelt utføre sorteringsalgoritme. I denne artikkelen vil vi utforske sorteringsfunksjonen i C ++,

Følgende tips vil bli dekket i denne artikkelen:





Fortsetter med denne artikkelen om sorteringsfunksjon i C ++

Sortere ( ) funksjon

Det er en innebygd funksjon av algoritmens headerfil, den brukes til å sortere containerne som en matrise, vektorer i en spesifisert rekkefølge. Internt er denne funksjonen implementert som Quick-sort
Quicksort er en skillelinje-algoritme. Quicksort deler først en stor liste over elementer i to mindre underlister: de nedre elementene og de høyere elementene. Quicksort sorterer deretter underlistene rekursivt.



Trinnene er som følger:
1. Velg et tilfeldig element (vanligvis det siste elementet), kalt en pivot, fra listen.
2. Omorganiser listen på en slik måte at alle elementer med verdier mindre enn pivot kommer før pivot, mens alle elementer med verdier større enn pivot kommer etter den og like verdier kan gå begge veier dette er prosessen kalles partisjonsoperasjon.
3. Sorter underlisten med mindre elementer og underlisten over større elementer rekursivt, velg igjen en pivot i underlisten og del dem.
Basissaken til rekursjonen er lister av størrelse null eller en, som aldri trenger å sorteres, og ved å kombinere dem sorterer vi listen vår.

Quicksort er raskere i praksis enn andre O (n log n) algoritmer som Insertion Sort eller Bubble sort. Quicksort kan implementeres med en på stedet partisjoneringsalgoritme som betyr at hele sorteringen kan gjøres med bare O (log n) ekstra plass. Quicksort er ikke en stabil sort.
Dens kompleksitet er som følger:
Beste tilfelle - O (n log n)
Verste tilfelle - O (n ^ 2)
Gjennomsnittlig tilfelle - O (n log n)

Syntaks:
sorter (første, siste)
Her,
først - er indeksen (pekeren) til det første elementet i området som skal sorteres.
siste - er indeksen (pekeren) til det siste elementet i området som skal sorteres.
For eksempel ønsker vi å sortere elementer i en matrise ‘arr’ fra 1 til 10 posisjon, vi vil bruke sortere (arr, arr + 10) og den vil sortere 10 elementer i stigende rekkefølge.
Returverdi
Ingen



Kompleksitet

Gjennomsnittet av en slags kompleksitet er N * log2 (N), hvor N = sist - først.

Data rekkevidde
Objektet i området [første, siste) er modifisert.

Unntak
Overbelastningen med en malparameter som heter ExecutionPolicy-rapportfeil, som følger:
Hvis algoritmen ikke tildeler minne, blir std :: bad_alloc kastet som et unntak.
Hvis utførelsen av en funksjon påkalt som en del av algoritmen, kaster den et unntak std :: terminate.

hvordan du lager et Java-program

Fortsetter med denne artikkelen om sorteringsfunksjon i C ++

Eksempel - Slik sorterer du data i stigende rekkefølge:

# inkludere bruk av navneområdet std int main () {int array [] = {10, 35, 85, 93, 62, 77, 345, 43, 2, 10} int n = sizeof (array) / sizeof (array [0] ) // 'sizeof' gir størrelsen på den totale matrisen, dvs. størrelsen på hvert tegn * nr. av tegn // så for å få nei. av tegn // vi deler størrelsen på (array) med størrelsen på et hvilket som helst tegn i array // her er det 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 } 

Utgang:

Output- Sorteringsfunksjon i C ++ - Edureka

Forklaring

Fra eksemplet ovenfor ser vi at sort () -funksjonen som standard sorterer en matrise i stigende rekkefølge.

Fortsetter med denne artikkelen om sorteringsfunksjon i C ++

Eksempel - Slik sorterer du data i synkende rekkefølge:

For å sortere dataene i matrisen i synkende rekkefølge må vi introdusere en tredje parameter som brukes til å spesifisere rekkefølgen elementene skal sorteres i. Vi kan bruke “større ()” -funksjonen til å sortere dataene i synkende rekkefølge.

# inkludere bruk av navneområde std int main () {int array [] = {41, 53, 4, 459, 60, 7, 23, 4, 232, 10} int n = sizeof (array) / sizeof (array [0] ) sorter (array, array + n, større ()) cout<< 'Array after sorting : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Produksjon:

Utløpsdato l en nasjon
Her gjør sort () -funksjonen en sammenligning på en måte som setter større element før.

Fortsetter med denne artikkelen om sorteringsfunksjon i C ++

hvordan du stopper et program i java

Delvis_sort

C ++ STL gir oss en delvis sorteringsfunksjon, funksjonen ligner på sorteringsfunksjonen (), men i motsetning til sorteringsfunksjonen () brukes den ikke til å sortere hele området, men den brukes til å sortere bare en del av den. Den sorterer elementene i området [første, siste), på en slik måte at elementene før midtelementet sorteres i stigende rekkefølge, mens elementene etter midten blir liggende som de er.

Den kan brukes til å finne det største elementet hvis vi bruker et funksjonsobjekt til å sortere for første posisjon

Eksempel

#include #include #include ved å bruke navneområdet std int main () {vector vec = {10, 45, 60, 78, 23, 21, 30} vector :: iterator iptr partial_sort (vec.begin (), vec.begin () + 1, vec.end (), større ()) iptr = vec.begin () cout<< 'The largest element is = ' << *iptr return 0 } 

Produksjon:

Forklaring:
Ovennevnte kode kan brukes til å finne det største antallet i en serie, for å finne det minste tallet i serien trenger vi bare å fjerne den større kommandoen.

Dermed har vi kommet til en slutt på denne artikkelen om ‘Sort Function in C ++’. Hvis du ønsker å lære mer, kan du sjekke Java Training av Edureka, et pålitelig online læringsfirma. Edureka’s kurset er designet for å trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet på denne bloggen, så kommer vi tilbake til deg så snart som mulig.