Uvod o razvrščanju v C ++

Razvrščanje pomaga pri urejanju elementov v zapisu glede na vrstni red. Razmislite o datotečnem zapisu, ki vsebuje veliko informacij, za dostop do seznama iz zapisa je potrebno imeti ključno polje, ki kaže na trenutno lokacijo elementa. Na primer, razmislite o seznamu imen v bazi podatkov, lahko bi ga razvrstili po abecednem redu. Razvrščanje je imelo pomembno vlogo na področju računalnikov in tehnologije. Oglejmo si več v tem članku.

Kaj je razvrščanje v C ++?

Razvrščanje je osnovni koncept, ki ga programer ali raziskovalec uporablja za razvrščanje potrebnih vložkov. Vrstni red zahtevnosti je podan z 0 (N * log (N)). Razvrščanje vnosa olajša reševanje številnih težav, kot so element Search, Maximum in Minimum. Čeprav razvrščanje razporeja podatke po zaporedju, je učinkovitost postopka zelo pomembna, ki temelji na dveh merilih: - Čas in pomnilnik, potreben za razvrščanje po danih podatkih. Čas se meri s štetjem primerjav uporabljenih tipk. Za razvrščanje je na voljo veliko algoritmov. Na splošno se razvrščanje v C ++ razlikuje v dve vrsti:

  1. Notranje razvrščanje
  2. Zunanje razvrščanje

Sintaksa in primer

Sintaksa:

C ++ uporablja vgrajeno funkcijo sort () za svoje algoritme za razvrščanje vsebnikov po vektorjih in matrikih.

Razvrsti (matrika, matrika + velikost);

Primeri:

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

Izhod:

Kako deluje?

Za začetek bomo vzeli Hitro razvrščanje, ki velja za pomembno metodo med različnimi vrstami razvrščanja. Osnovno razvrščanje matrike je pristop Quicksort. Različne načine izvajanja razvrščanja, cilj vsake od teh tehnik je enak kot primerjava dveh elementov in njihovo zamenjavo z začasno spremenljivko. V tem članku bomo obravnavali najpomembnejše razvrščanje, ki se uporablja za izvajanje. Sledijo:

  1. Razporeditev mehurčkov
  2. Razvrsti vstavljanje
  3. Hitro razvrščanje
  4. Razvrstitev izbire

Obstajajo Merge Sort, razvrstitev po radiksu in razvrščanje trakov, o katerih bomo lahko razpravljali pozneje. Najprej bomo šli z Bubble sort.

1. Razporeditev mehurčkov

Razporeditev mehurčkov je eden najpreprostejših načinov razvrščanja, ki ga lahko uporabimo za aplikacije. Pri tej tehniki se skozi zapise razvrstijo zaporedne zamenjave. Na vsakem koraku primerja ključ s podatki in izmenjuje elemente, če ne v želenem vrstnem redu. Razvrščanje se izvede s sosednjimi elementi, ko je po zamenjavi nameščen le en element na razvrščenem mestu.

Primer: Razmislimo o nesortiranem nizu A () = (6, 2, 4, 7, 1)

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

1. korak: Če primerjate A (0)> A (1), če je pogoj res, zamenjajte element (6> 2) true, postavite 2 v A (0). Podobno so vsi koraki enaki, dokler se matrika ne razvrsti.

Zdaj je matrika A () = (2, 6, 4, 7, 1)

Korak 2: 6 primerjamo s 4. Ker je 6 večje od 4. Zato se 6 in 4 zamenjata.

Zdaj je matrika A () = (2, 4, 6, 7, 1)

Korak 3: Element 6 primerjamo s 7. Ker je 6 <2 in so elementi v naraščajočem vrstnem redu, se elementi ne zamenjajo.

Razvrščeni niz je A () = (2, 4, 6, 7, 1).

Nadaljujte postopek, dokler se matrika ne razvrsti.

2. Razvrstitev vstavka

V tej tehniki začnemo z drugim podatkovnim elementom s predpostavko, da je prvi element že razvrščen in primerjava z drugim elementom, korak pa nadaljujemo z drugim naslednjim elementom. V nizu N elementov je potrebno imeti prehode N-1, da imamo razvrščen element.

Razmislite o nizu A () = (8, 3, 6, 1)

8361

1. korak: prvi element išče največji element v matriki, ki ga lahko zamenja. Če je večja, ostane enaka in se premakne na drugi element, tukaj je 8 večja od vseh, ni nobene zamenjave.

8361

2. korak: Zamenjava z drugim elementom

3861

Korak: Zamenjava s tretjim elementom

3681

4. korak: Zamenjava s četrtim elementom

1368

3. Hitro razvrščanje

Ta tehnika sledi algoritmu delitve in osvajanja in velja za zelo učinkovito in hitrejšo za ogromne nize. Razdeljeni so v tri pododdelke: levi, desni in srednji. Srednji element ima eno samo vrednost in je imenovan kot vrtišče. Mehanizem gre takole: element v levem segmentu ne bi smel imeti ključa, večjega od srednjega elementa, noben element v desni pa ima ključ, ki je manjši od srednjega. Zdaj pa začnimo z ponazoritvijo postopka razvrščanja. Quicksort pri razvrščanju poddelovanja uporablja rekurzivni koncept. Niz je razdeljen na del, spet levi in ​​desni segmenti so razdeljeni z osvajanjem. V tem primeru je upoštevanje vrtenja zadnjega elementa in prvi element je predpostavljen nizko. Razmislite o matričnem elementu

492211165630

Če vzamemo skrajni desni element, ima vrtilni element = 30

162211305649

Element večji od vrtenja je postavljen proti levi, manjši na desni.

1622115649

Kazalec je postavljen na vrtišče in je razdeljen okoli vrtišča.

1122165649

Poddelki so razvrščeni posamično.

111622304956

Končno smo dobili razvrščen niz.

4. Razvrstitev izbire

To tehniko imenujemo tudi izmenjevalno razvrščanje, ki izvaja dvostransko iskanje in razvrščanje. Izvedba poteka naravnost po izbiri, kot je določeno spodaj. Tu je treba identificirati najmanjši element, ki je prisoten v matriki, in ta element je razvrščen v prvem položaju, Naslednji, drugi najmanjši element je razvrščen v drugem položaju. Izbirna vrsta izstopi iz zanke, ko nesortirani poddel postane prazen. Časovna kompleksnost je podana kot O (n 2 ).

Upoštevajte naslednji niz:

6326132312

1. Poiščite najmanjši element in ga postavite na začetek in ga zamenjajte s položajem.

1226132363

2. Drugi element a (1) je identificiran, primerjaj ga z minimalnim elementom in ga postavi v drugi položaj, podobno se nadaljuje prehod.

1213262364

Končni razvrščeni izhod

1213232664

Zaključek

Za zaključek se je ta članek osredotočil na razvrščanje konceptov in njihov delovni mehanizem. Vse te tehnike sortiranja uporabljajo koncepte vzporedne obdelave. Razvrščanje tvori jedro gradnika pri strukturiranju algoritmov za reševanje problemov podatkov v resničnem svetu s sortiranjem nabora vrednosti glede na zahteve.

Priporočeni članki

To je vodnik za razvrščanje v C ++. Tukaj razpravljamo o uvodu in sintaksi s primeri skupaj s tem, kako deluje. Obiščite lahko tudi druge naše predlagane članke, če želite izvedeti več -

  1. Razvrščanje v Tableau
  2. Iterator v C ++
  3. Funkcije matrike na C
  4. Razvrstite v C
  5. Kako se razvrščanje izvaja v PHP?
  6. Razvrstite v Python
  7. Iterator na Javi
  8. 11 najboljših lastnosti in prednosti C ++
  9. Iterator v Pythonu | Prednosti in primeri Pythona