Kako implementirati funkciju sortiranja u C ++?



Ovaj će vam članak pomoći da istražite funkciju sortiranja u jeziku c ++ i u tom procesu pružiti vam detaljnu demonstraciju koncepta

Sortiranje jedna je od najosnovnijih i najkorisnijih funkcija primijenjenih na podatke. Cilj mu je urediti podatke na određeni način, koji se može povećavati ili smanjivati ​​prema zahtjevima. U C ++ STL postoji ugrađena funkcija pod nazivom ‘sort ()’ koja nam omogućuje jednostavno izvršavanje algoritma za sortiranje. U ovom ćemo članku istražiti funkciju sortiranja u C ++,

U ovom članku bit će obrađeni sljedeći smjerovi:





kako baciti dupla na int u javi

Nastavljamo s ovim člankom o funkciji sortiranja u C ++

Vrsta ( ) funkcija

To je ugrađena funkcija datoteke zaglavlja algoritma koja se koristi za sortiranje spremnika poput niza, vektora u određenom redoslijedu. Interno se ova funkcija provodi kao brzo sortiranje
Quicksort je algoritam podijeli i osvoji. Quicksort prvo dijeli veliki popis elemenata na dva manja podpopisa: donji elementi i viši elementi. Quicksort zatim rekurzivno sortira pod-popise.



Koraci su sljedeći:
1. Odaberite slučajni element (obično posljednji element), koji se naziva pivot, s popisa.
2. Promijenite redoslijed popisa na takav način da svi elementi čija je vrijednost manja od pivota dolaze prije pivota, dok svi elementi s vrijednostima većim od pivota dolaze nakon njega, a jednake vrijednosti mogu ići u bilo kojem slučaju, to je postupak koji se naziva operacija particije.
3. Rekurzivno razvrstajte pod-popis manjih elemenata i pod-popis većih elemenata, ponovno odaberite osovinu na pod-popisu i podijelite ih.
Osnovni slučaj rekurzije su popisi veličine nula ili jedan, koje nikada nije potrebno sortirati, pa tako njihovim kombiniranjem sortiramo svoj popis.

Quicksort je u praksi brži od ostalih O (n log n) algoritama kao što su Insertion Sort ili Bubble sort. Quicksort se može implementirati s algoritmom za particioniranje na mjestu, što znači da se cjelokupno sortiranje može izvršiti samo s O (log n) dodatnim prostorom. Quicksort nije stabilna sorta.
Njegova složenost je sljedeća:
Najbolji slučaj - O (n log n)
Najgori slučaj - O (n ^ 2)
Prosječni slučaj - O (n log n)

Sintaksa:
razvrstavanje (prvo, posljednje)
Ovdje,
prvi - je indeks (pokazivač) prvog elementa u rasponu koji se sortira.
zadnji - je indeks (pokazivač) zadnjeg elementa u rasponu koji se sortira.
Na primjer, želimo sortirati elemente niza ‘arr’ od 1 do 10 položaja, koristit ćemo sort (arr, arr + 10) i on će sortirati 10 elemenata u rastućem redoslijedu.
Povratna vrijednost
Nijedna



Složenost

Prosjek složenosti sortiranja je N * log2 (N), gdje je N = zadnji - prvi.

Raspon podataka
Objekt u rasponu [prvi, zadnji) su izmijenjeni.

Iznimke
Preopterećenja s parametrom predloška koji je imenovan kao pogreške izvješća ExecutionPolicy kako slijedi:
Ako algoritam ne uspije dodijeliti memoriju, std :: bad_alloc se dodaje kao iznimka.
Ako izvršavanje funkcije koja se poziva kao dio algoritma, izbacuje iznimku std :: terminate.

Nastavljamo s ovim člankom o funkciji sortiranja u C ++

Primjer - za sortiranje podataka u uzlaznom redoslijedu:

#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' daje veličinu ukupnog niza tj. veličinu svakog znaka * br. likova // tako da se dobije br. znakova // veličinu (niz) dijelimo s veličinom bilo kojeg znaka niza // ovdje je to niz [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 } 

Izlaz:

Izlaz - funkcija sortiranja u C ++ - Edureka

Obrazloženje

Iz gornjeg primjera vidimo da funkcija sort () prema zadanim postavkama sortira niz u rastućem redoslijedu.

Nastavljamo s ovim člankom o funkciji sortiranja u C ++

Primjer - za sortiranje podataka u padajućem redoslijedu:

Da bismo sortirali podatke niza u opadajućem redoslijedu, trebamo uvesti treći parametar koji se koristi za određivanje redoslijeda kojim će se elementi sortirati. Za sortiranje podataka u silaznom redoslijedu možemo koristiti funkciju “larger ()”.

#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 (niz, niz + n, veći ()) cout<< 'Array after sorting : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Izlaz:

Isk l anacija
Ovdje funkcija sort () vrši usporedbu na način koji stavlja veći element ispred.

Nastavljamo s ovim člankom o funkciji sortiranja u C ++

Djelomično_razvrstavanje

C ++ STL pruža nam djelomičnu funkciju sortiranja, funkcija je slična funkciji sort (), ali za razliku od funkcije sort () ne koristi se za sortiranje cijelog raspona, već se koristi za sortiranje samo njegovog dijela. Razvrstava elemente u rasponu od [prvi, zadnji), na način da se elementi prije srednjeg elementa sortiraju u rastućem redoslijedu, dok elementi nakon sredine ostaju takvi kakvi jesu.

kako stvoriti objektni niz u javi

Može se koristiti za pronalaženje najvećeg elementa ako koristimo objekt funkcije za sortiranje za prvu poziciju

Primjer

#include #include #include pomoću prostora imena std int main () {vector vec = {10, 45, 60, 78, 23, 21, 30} vector :: iterator iptr djelomični_sort (vec.begin (), vec.begin () + 1, vec.end (), veća ()) iptr = vec.begin () cout<< 'The largest element is = ' << *iptr return 0 } 

Izlaz:

Obrazloženje:
Gornji kod se može koristiti za pronalaženje najvećeg broja u nizu, za pronalaženje najmanjeg broja u nizu samo trebamo ukloniti veću naredbu.

Tako smo došli do kraja ovog članka o 'Funkciji sortiranja u C ++'. Ako želite saznati više, pogledajte Java Training tvrtke Edureka, pouzdane tvrtke za internetsko učenje. Edureka tečajevi su dizajnirani da vas osposobe za osnovne i napredne Java koncepte, zajedno s raznim Java okvirima poput Hibernate & Spring.

Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga i javit ćemo vam se što je prije moguće.