Sissejuhatus sorteerimisse C ++

Omades tellimiseks elementide kogumit, aitab sortimine kirje elemente järjestamise järjekorra alusel korraldada. Mõelge faili kirjele, mis sisaldab palju teavet, et pääseda registrist loendisse, on vaja võtmevälja, et osutada elemendi praegusele asukohale. Mõelge näiteks andmebaasis olevale nimeloendile, seda võiks järjestada tähestiku järjekorras. Sorteerimine pidas olulist rolli arvutite ja tehnoloogia valdkonnas. Vaatame lähemalt selles artiklis.

Mis on sortimine C ++ -s?

Sorteerimine on põhikontseptsioon, mida programmeerija või teadlane kasutab vajalike sisendite sorteerimiseks. Keerukuse järjekord antakse 0-ga (N * log (N)). Sisendi sorteerimine lihtsustab paljude probleemide (nt otsimine, maksimaalne ja minimaalne element) lahendamist. Kuigi sortimine korraldab andmeid jadas, on protsessi tõhusus väga oluline, mis põhineb kahel kriteeriumil: - antud andmete sortimiseks vajalik aeg ja mälu. Aega mõõdetakse kasutatud võtmete võrdluste loendamise teel. Sorteerimiseks on saadaval palju algoritme. Üldiselt eristatakse sorteerimist C ++ kategoorias kahte tüüpi:

  1. Sisemine sorteerimine
  2. Väline sorteerimine

Süntaks ja näide

Süntaks:

C ++ kasutab nende algoritmide jaoks sisseehitatud funktsiooni sort (), et sortida konteinereid nagu vektorid, massiivid.

Sort (massiiv, massiiv + suurus);

Näited:

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

Väljund:

Kuidas see töötab?

Alustuseks kasutame kiiret sortimist, mida peetakse oluliseks meetodiks mitmesuguste sortimistüüpide hulgas. Massiivi põhiline sortimine võtab Quicksort-lähenemise. Sorteerimise teostamiseks on erinevaid viise, kõigi nende tehnikate eesmärk on sama, kui võrrelda kahte elementi ja vahetada need ajutise muutujaga. Selles artiklis käsitleme kõige olulisemat sorteerimist, mida rakendamisel kasutatakse. Järgmised on:

  1. Mullide sortimine
  2. Sisestuse sortimine
  3. Kiire sortimine
  4. Valiku sortimine

Seal on Merge Sort, raadiosorteerimine, lindisorteerimine, millest me võime hiljem arutada. Esiteks läheme Bubble'i sorteerima.

1. Mullide sortimine

Mullide sortimine on üks lihtsamaid sortimismeetodeid, mida saame seda rakenduste jaoks kasutada. Selle meetodi korral tehakse järjestikuste kirjete kaudu järjestikused vahetused. Igas etapis võrdleb see võtit andmetega ja vahetab elemente, kui see pole soovitud järjekorras. Sorteerimine toimub külgnevate elementidega samal ajal, kui vahetuse järel pannakse sorteeritud kohta ainult üks element.

Näide: Vaatleme sortimata massiivi A () = (6, 2, 4, 7, 1)

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

1. samm: kui võrrelda tingimust A (0)> A (1), siis kui tingimus on tõene, vahetage element (6> 2) tõene, asetage 2 punkti A (0). Samamoodi toimuvad kõik sammud sama, kuni massiiv sorteeritakse.

Nüüd on massiiv A () = (2, 6, 4, 7, 1)

2. etappi: 6 võrreldakse 4. Kuna 6 on suurem kui 4. Seetõttu vahetatakse 6 ja 4.

Nüüd on massiiv A () = (2, 4, 6, 7, 1)

3. samm: elementi 6 võrreldakse 7. Kuna element 6 <2 ja elemendid on kasvavas järjekorras, siis elemente ei vahetata.

Sorteeritud massiiv on A () = (2, 4, 6, 7, 1).

Jätkake protsessi, kuni massiiv on sorteeritud.

2. Sisestuse sortimine

Selle tehnika puhul alustame teise andmeelemendiga, eeldades, et esimene element on juba sorteeritud ja teise elemendiga võrreldakse ning sammu jätkatakse teise järgneva elemendiga. N-elementide massiivis peab sorteeritud elemendi saamiseks olema N-1 pääs.

Vaatleme massiivi A () = (8, 3, 6, 1)

8361

1. samm: esimene element otsib massiivi suurimat elementi, mida vahetada. Kui see on suurem, jääb see samaks ja liigub teise elemendi juurde, siin 8 on kõigist suurem, vahetust ei tehta.

8361

2. samm: vahetamine teise elemendiga

3861

3. samm: vahetamine kolmanda elemendiga

3681

4. samm: vahetus neljanda elemendiga

1368

3. Kiire sortimine

See tehnika järgib jagamise ja vallutamise algoritmi ning seda peetakse väga tõhusaks ja ka tohutute massiivide jaoks kiiremaks. Need jagunevad kolmeks alajaotuseks: vasak, parem ja keskmine. Keskmisel elemendil on üks väärtus ja seda nimetatakse pöördepunktiks. Mehhanism läheb niimoodi, vasakpoolses segmendis ei tohiks olla võtit, mis on suurem kui keskmine element ja ühelgi paremal asuval elemendil ei ole võtit, mis on väiksem kui keskmisel elemendil. Alustame nüüd sorteerimisprotsessi illustratsiooniga. Quicksort kasutab alaosa sorteerimisel rekursiivset kontseptsiooni. Massiiv jagatakse alamrühmadeks, jällegi vasak- ja parempoolne segment jagatakse vallutamise teel. Selles näites on viimasel elemendil pöördepunkt ja esimese elemendi oletus on madal. Mõelge massiivi elemendile

492211165630

Parempoolseima elemendi võtmisel on pöördeelement = 30

162211305649

Pöördpunktist suurem element paigutatakse vasakule, paremale väiksemale.

1622115649

Kursor pannakse pöördepunkti külge ja jaotatakse pöörde ümber.

1122165649

Alamrühmad sorteeritakse eraldi.

111622304956

Lõpuks saime sorteeritud massiivi.

4. Valiku sortimine

Seda tehnikat nimetatakse ka vahetussorteerimiseks, mis hõlmab kahesuguse operatsiooni otsimist ja sortimist. Rakendus võtab allpool määratletud sirgjoonelise sortimise. Siin on vaja tuvastada massiivis olev väikseim element ja see element sorteeritakse esimesse i-ndasse positsiooni, seejärel tuvastatakse teine ​​väikseim element ja see sorteeritakse teises asendis. Kui sortimata alaosa tühjaks saab, väljub valiku sort oma silmusest. Aja keerukus on esitatud kui O (n 2 ).

Mõelge järgmisele massiivile:

6326132312

1. Leidke väikseim element ja asetage see algusesse ning see vahetatakse positsiooniga.

1226132363

2. Teist elementi a (1) saab võrrelda minimaalse elemendiga ja asetada teise kohta, samamoodi jätkub läbimine.

1213262364

Lõplik sorteeritud väljund

1213232664

Järeldus

Kokkuvõtteks keskenduti selles artiklis mõistete sorteerimisele ja nende töömehhanismile. Kõik need sorteerimistehnikad kasutavad paralleelseid töötlemiskontseptsioone. Sorteerimine moodustab algoritmide struktureerimise põhielemendi, et lahendada andmete probleemid pärismaailmas, sorteerides väärtuste komplekti vastavalt nõuetele.

Soovitatavad artiklid

See on juhend sorteerimiseks C ++-s. Siin käsitleme sissejuhatust ja süntaksi koos näidetega ning kuidas see töötab. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. Sorteerimine tabelis
  2. Iteraator C ++
  3. Massiivi funktsioonid C-s
  4. Hunnik Sorteeri C-s
  5. Kuidas PHP-s sorteeritakse?
  6. Hunnik sorteerimine Pythonis
  7. Iteraator Java-s
  8. C ++ 11 peamist funktsiooni ja eelist
  9. Iteraator Pythonis | Pythoni eelised ja näited

Kategooria: