Johdanto lajittelusta C ++: ssa

Aineistokokoelman tilaaminen, lajittelu auttaa järjestämään tietueessa olevat elementit tilaussuhteen perusteella. Harkitse tiedostoa, joka sisältää paljon tietoa. Listaan ​​pääsemiseksi tietueesta on oltava avainkenttä osoittamaan elementin nykyinen sijainti. Harkitse esimerkiksi tietokannan nimiluetteloa, se voidaan lajitella aakkosjärjestykseen. Lajittelu asetti tärkeän roolin tietokoneiden ja tekniikan alalla. Katsotaanpa lisätietoja tässä artikkelissa.

Mikä on lajittelu C ++: ssa?

Lajittelu on peruskäsite, jota ohjelmoija tai tutkija käyttää tarvittavien syötteiden lajitteluun. Monimutkaisuusjärjestys annetaan nollalla (N * log (N)). Tulojen lajittelu on helpompaa ratkaista monia ongelmia, kuten etsintä, enimmäis- ja vähimmäisosio. Vaikka lajittelu järjestää datan järjestyksessä, prosessin tehokkuus on erittäin tärkeä, joka perustuu kahteen kriteeriin: - Aika ja muisti, joita tarvitaan lajittelun suorittamiseen annetulle tiedolle. Aika mitataan laskemalla käytettyjen avainten vertailut. Lajitteluun on saatavana monia algoritmeja. Lajittelu C ++: ssa erotetaan yleensä kahteen tyyppiin:

  1. Sisäinen lajittelu
  2. Ulkoinen lajittelu

Syntaksi ja esimerkki

Syntaksi:

C ++ käyttää algoritmeihinsa sisäänrakennettua lajittelu () -toimintoa lajittelemaan säiliöt kuten vektorit, taulukot.

Lajittele (taulukko, taulukko + koko);

esimerkkejä:

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

lähtö:

Kuinka se toimii?

Aluksi otamme pikalajittelun, jota pidetään tärkeänä menetelmänä useissa lajittelulajeissa. Matriisin perus- lajittelu tapahtuu Quicksort-lähestymistavalla. Lajitteluun on erilaisia ​​tapoja, jokaisen tekniikan tarkoitus on sama kuin kahden elementin vertaaminen ja vaihtaminen väliaikaiseen muuttujaan. Tässä artikkelissa keskustelemme tärkeimmästä lajittelussa käytetystä lajittelusta. Seuraavat ovat:

  1. Kuplalajittelu
  2. Lisäyslajittelu
  3. Pikalajittelu
  4. Valinta Lajittele

On olemassa Merge Sort, radix-lajittelu, nauhalajittelu, joista voimme keskustella myöhemmin. Ensinnäkin, menemme Bubble-lajitteluun.

1. Kuplalajittelu

Kuplalajittelu on yksi yksinkertaisimmista lajittelumenetelmistä, jota voimme käyttää sovelluksissa. Tässä tekniikassa järjestetään peräkkäisiä vaihtimia lajiteltavien tietueiden kautta. Jokaisessa vaiheessa se vertaa avainta dataan ja vaihtaa elementtejä ellei halutussa järjestyksessä. Lajittelu tapahtuu vierekkäisillä elementeillä kerrallaan, vain yksi elementti sijoitetaan lajiteltuun paikkaan vaihdon jälkeen.

Esimerkki: Tarkastellaan lajittelematonta taulukkoa A () = (6, 2, 4, 7, 1)

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

Vaihe 1: Vertaamalla A (0)> A (1), jos ehto on tosi, vaihda elementti (6> 2) true, aseta 2 kohtaan A (0). Samoin kaikki vaiheet suoritetaan samalla tavalla, kunnes taulukko lajitellaan.

Nyt taulukko on A () = (2, 6, 4, 7, 1)

Vaihetta 2: 6 verrataan neljään. Koska 6 on suurempi kuin 4. Siksi 6 ja 4 vaihdetaan.

Nyt taulukko on A () = (2, 4, 6, 7, 1)

Vaihe 3: Elementtiä 6 verrataan 7. Koska elementtiä 6 <2 ja elementit ovat nousevassa järjestyksessä, elementtejä ei vaihdeta.

Lajiteltu taulukko on A () = (2, 4, 6, 7, 1).

Jatka prosessia, kunnes taulukko on lajiteltu.

2. Lisäyslajittelu

Tässä tekniikassa aloitamme toisella dataelementillä olettaen, että ensimmäinen elementti on jo lajiteltu ja vertailu suoritetaan toisen elementin kanssa ja vaihetta jatketaan toisen seuraavan elementin kanssa. N-elementtiryhmässä on välttämätöntä, että N-1-passilla olisi lajiteltu elementti.

Tarkastellaan taulukkoa A () = (8, 3, 6, 1)

8361

Vaihe 1: Ensimmäinen elementti etsii taulukon suurimman vaihdettavan elementin. Jos se on suurempi, se pysyy samana ja siirretään toiseen elementtiin, tässä 8 on suurempi kuin kaikki, vaihtotapaa ei tehdä.

8361

Vaihe 2: Vaihtaminen toisen elementin kanssa

3861

Vaihe 3: Vaihtaminen kolmannen elementin kanssa

3681

Vaihe 4: Vaihtaminen neljännen elementin kanssa

1368

3. Pikalajittelu

Tämä tekniikka seuraa jako- ja valloitusalgoritmia, ja sitä pidetään erittäin tehokkaana ja nopeampana valtaville ryhmille. Ne on jaettu kolmeen alajaksoon: vasen, oikea ja keskimmäinen. Keskimmäisellä elementillä on yksi arvo ja se on nimeltään nivel. Mekanismi menee näin, vasemman segmentin elementissä ei tulisi olla avainta, joka on suurempi kuin keskielementti, eikä oikeassa olevassa elementissä ole avainta, joka on pienempi kuin keskielementti. Aloitetaan nyt kuva lajitteluprosessista. Quicksort käyttää rekursiivista konseptia alaosaa lajitellessaan. Taulukko on jaettu alaosaan, taas vasen ja oikea segmentti osioidaan valloittamalla. Tässä esimerkissä ottaen huomioon viimeisen elementin on kääntyvä ja ensimmäisen elementin oletetaan olevan matala. Mieti taulukkoelementti

492211165630

Oikeimmassa osassa elementti on nivel-elementti = 30

162211305649

Niveltapaa suurempi elementti sijoitetaan vasemmalle, pienempi oikealle.

1622115649

Osoitin asetetaan nivelosaan ja jaetaan niveltavan ympärille.

1122165649

Alaosat lajitellaan yksittäin.

111622304956

Viimeinkin saimme lajitellun taulukon.

4. Valintalajittelu

Tätä tekniikkaa kutsutaan myös vaihtolajitteluksi, joka suorittaa kaksoisoperaatiohaun ja -lajittelun. Toteutuksessa tapahtuu suora valintalajittelu alla määritellyn mukaisesti. Tässä vaaditaan yksilöimään taulukossa oleva pienin elementti ja tämä elementti lajitellaan ensimmäiseen i: nteen sijaintiin. Seuraavaksi tunnistetaan toinen pienin elementti ja se lajitellaan toiseen sijaintiin. Valintaluokka poistuu silmukastaan, kun lajittelematon alaosa tyhjenee. Ajan monimutkaisuus annetaan muodossa O (n 2 ).

Mieti seuraavaa taulukkoa:

6326132312

1. Löydä pienin elementti ja aseta se alkuun ja se vaihdetaan asennon kanssa.

1226132363

2. Toinen elementti a (1) tunnistetaan verrattuna minimielementtiin ja asetetaan se toiseen asentoon, samoin, siirto jatkuu.

1213262364

Lopullinen lajiteltu tulos

1213232664

johtopäätös

Lopuksi, tässä artikkelissa keskityttiin käsitteiden lajitteluun ja niiden toimintamekanismeihin. Kaikki nämä lajittelutekniikat käyttävät rinnakkaiskäsittelykonsepteja. Lajittelu muodostaa keskeisen rakennuslohkon algoritmien jäsentämisessä ratkaisemaan todellisessa maailmassa esiintyvät dataongelmat lajittelemalla arvojoukot vaatimusten mukaan.

Suositellut artikkelit

Tämä on opas lajitteluun C ++: ssa. Tässä keskustellaan johdannosta ja syntaksista esimerkkien kanssa sekä miten se toimii. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme saadaksesi lisätietoja -

  1. Lajittelu taulukossa
  2. Iterator C ++: ssa
  3. C-taulukon toiminnot
  4. Kasa Lajittele C: ssä
  5. Kuinka lajittelu tapahtuu PHP: ssä?
  6. Heap Sort Pythonissa
  7. Iterator Java
  8. C ++: n 11 tärkeintä ominaisuutta ja hyötyä
  9. Iteraattori Pythonissa | Edut ja esimerkit Pythonista