Uvod o razvrstavanju u C ++

Imajući kolekciju elemenata po narudžbi, sortiranje pomaže u organiziranju elemenata u zapisu na temelju odnosa redoslijeda. Razmotrite zapis datoteke koji sadrži puno podataka, za pristup popisu iz zapisa potrebno je imati ključno polje koje će usmjeravati trenutnu lokaciju elementa. Na primjer, razmotrite popis imena u bazi podataka, to bi moglo biti razvrstano po abecedi. Razvrstavanje je igralo važnu ulogu u području Računala i tehnologije. Pogledajmo više u ovom članku.

Što je razvrstavanje u C ++?

Razvrstavanje je osnovni koncept koji programer ili istraživač koristi za sortiranje potrebnih ulaza. Redoslijed složenosti dan je s 0 (N * log (N)). Razvrstavanje ulaza olakšava rješavanje mnogih problema poput Elementa za pretraživanje, Maksimalni i Minimalni. Iako se razvrstavanjem poredaju podaci u redoslijedu, vrlo je važna učinkovitost postupka koja se temelji na dva kriterija: - Vrijeme i memorija potrebna za obavljanje razvrstavanja na danim podacima. Vrijeme se mjeri brojenjem usporedbi korištenih ključeva. Na raspolaganju je mnogo algoritama za sortiranje. Općenito, sortiranje u C ++ razlikuje se u dvije vrste:

  1. Interno razvrstavanje
  2. Vanjsko razvrstavanje

Sintaksa i primjer

Sintaksa:

C ++ koristi ugrađenu funkciju sort () za svoje algoritme, za razvrstavanje spremnika po vektorima i nizovima.

Poredaj (niz, niz + veličina);

Primjeri:

#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 < )
)

Izlaz:

Kako radi?

Za početak ćemo uzeti Quick Sort, koji se smatra važnom metodom među raznim vrstama sortiranja. Osnovno razvrstavanje niza uzima Quicksort pristup. Različiti su načini provedbe razvrstavanja, cilj svake od ovih tehnika je isti kao usporedba dva elementa i njihova zamjena s privremenom varijablom. U ovom ćemo članku raspravljati o najvažnijim sortiranjima koja se koriste za provedbu. Slijede:

  1. Razvrstavanje mjehurića
  2. Poredak umetanja
  3. Brzo sortiranje
  4. Izbor sortiranja

Postoje Merge Sort, radix vrsta, sortiranje vrpca o kojima ćemo kasnije moći razgovarati. Prvo ćemo ići s Bubble vrstom.

1. Bubble Sort

Sorta mjehurića jedna je od najjednostavnijih metoda sortiranja koju možemo koristiti za aplikacije. U ovoj se tehnici uzastopne izmjene izvršavaju kroz zapise koje se razvrstavaju. U svakom koraku uspoređuje ključ s podacima i razmjenjuje elemente, ako ne u željenom redoslijedu. Razvrstavanje se vrši sa susjednim elementima u vrijeme kada se samo jedan element postavi na razvrstano mjesto nakon zamjene.

Primjer: Uzmimo u obzir nesortirani niz A () = (6, 2, 4, 7, 1)

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

Korak 1: Usporedba A (0)> A (1), ako je uvjet istina, zamijenite element (6> 2) istinom, stavite 2 u A (0). Slično tome, svi koraci se poduzimaju sve dok se niz ne razvrsta.

Sad je niz A () = (2, 6, 4, 7, 1)

Korak 2: 6 se uspoređuje s 4. Kako je 6 veće od 4. Dakle, 6 i 4 se zamjenjuju.

Sad je niz A () = (2, 4, 6, 7, 1)

Korak 3: Element 6 se uspoređuje sa 7. Budući da su 6 <2 i elementi su u uzlaznom redoslijedu, elementi se ne mijenjaju.

Poredani niz je A () = (2, 4, 6, 7, 1).

Nastavite postupak dok se niz ne razvrsta.

2. Umetanje vrsta

U ovoj tehnici započinjemo s drugim podatkovnim elementom pretpostavljajući da je prvi element već sortiran i da se uspoređuje s drugim elementom, a korak se nastavlja s drugim sljedećim elementom. U nizu od N elemenata, potrebno je imati prolaza N-1 da biste imali razvrstani element.

Razmotrimo niz A () = (8, 3, 6, 1)

8361

Korak 1: Prvi element traži najveći element u nizu koji se može zamijeniti. Ako je veći ostaje isti i prebacuje se na drugi element, ovdje je 8 veće od svih, ne vrši se zamjena.

8361

Korak 2: Zamjena drugim elementom

3861

Korak: Zamjena trećim elementom

3681

Korak 4: Zamjena sa četvrtim elementom

1368

3. Brzo sortiranje

Ova tehnika slijedi algoritam za podešavanje i osvajanje i smatra se vrlo učinkovitom, kao i bržom za ogromne nizove. Podijeljeni su u tri pododjeljka: lijevi, desni i srednji. Srednji element ima jednu vrijednost i imenovan je kao okretni element. Mehanizam ide ovako: element u lijevom segmentu ne bi trebao imati ključ veći od srednjeg elementa i nijedan element u desnom nema ključ koji je manji od srednjeg elementa. Počnimo s ilustracijom procesa sortiranja. Pri sortiranju pod-dijela Quicksort koristi rekurzivni koncept. Niz se dijeli na podpart, opet se lijevi i desni segment dijele osvajanjem. Ovdje u ovom primjeru imajući u vidu da posljednji element ima stožer i prvi se element pretpostavlja da je nizak. Razmislite o nizu elemenata

492211165630

Uzimanje krajnjeg desnog elementa ima stožerni element = 30

162211305649

Element veći od stožera postavljen je prema lijevoj strani, manji desno.

1622115649

Pokazivač je smješten na okretnom položaju i podijeljen je oko osovine.

1122165649

Poddijelovi su razvrstani pojedinačno.

111622304956

Napokon smo dobili sortirani niz.

4. Izbor sortiranja

Ova se tehnika naziva i razmjenjivanje razmjena (engl. Exchange sorting) obavlja dvostruko pretraživanje i sortiranje. Provedba podrazumijeva izravno sortiranje odabira kako je dolje definirano. Ovdje je potrebno identificirati najmanji element koji je prisutan u nizu i taj je element sortiran u prvom položaju, Dalje, identificiran je drugi najmanji element i sortiran je u drugom položaju. Odabir sortiranja izlazi iz svoje petlje kada nesortirani pododjeljak postane prazan. Vremenska složenost dana je kao O (n 2 ).

Razmotrite sljedeći niz:

6326132312

1. Pronađi najmanji element i postavi ga na početak i on se zamijeni položajem.

1226132363

2. Drugi element a (1) identificira se uspoređuje s minimalnim elementom i postavlja ga u drugi položaj, slično kao što se nastavlja.

1213262364

Konačni sortirani izlaz

1213232664

Zaključak

Zaključno, ovaj se članak fokusirao na razvrstavanje koncepata i njihov radni mehanizam. Sve ove tehnike sortiranja koriste koncepte paralelne obrade. Razvrstavanje formira temeljni građevni blok u strukturiranju algoritama za rješavanje problema podataka u stvarnom svijetu sortiranjem skupa vrijednosti prema zahtjevima.

Preporučeni članci

Ovo je vodič za sortiranje u C ++. Ovdje razgovaramo o Uvodu i sintaksi s primjerima zajedno s Kako to funkcionira. Možete i proći kroz naše druge predložene članke da biste saznali više -

  1. Razvrstavanje u Tableau
  2. Iterator u C ++
  3. Funkcije polja u C
  4. Poredaj na C
  5. Kako se vrši sortiranje u PHP-u?
  6. Poredajte u Python
  7. Iterator u Javi
  8. Top 11 značajki i prednosti C ++
  9. Iterator u Pythonu | Prednosti i primjeri Pythona

Kategorija: