Kuinka Lajitella Luettelo Aakkosjärjestyksessä

Sisällysluettelo:

Kuinka Lajitella Luettelo Aakkosjärjestyksessä
Kuinka Lajitella Luettelo Aakkosjärjestyksessä

Video: Kuinka Lajitella Luettelo Aakkosjärjestyksessä

Video: Kuinka Lajitella Luettelo Aakkosjärjestyksessä
Video: Myytti 7: Lajittelu on turhaa 2024, Marraskuu
Anonim

Mikä tahansa saman tyyppinen tietosarja voidaan esittää luettelona. Luetteloita voi tilata ja järjestää. Jälkimmäisessä tapauksessa tietojen käsittely, halutun arvon löytäminen ja luettelon elementtien käyttäminen aiheuttavat tiettyjä vaikeuksia. Merkkijonomuuttujien luettelo on yleensä lajiteltu aakkosjärjestyksessä. Lajittelumenetelmiä on monia, kussakin tapauksessa sinun tulisi valita optimaalisin algoritmi.

Kuinka lajitella luettelo aakkosjärjestyksessä
Kuinka lajitella luettelo aakkosjärjestyksessä

Ohjeet

Vaihe 1

Parasta lajittelutapaa valittaessa on otettava huomioon kaksi asiaa: lajitteluun kuluva aika ja ylimääräiseen muistiin tarvittava muistin määrä. Lajittelualgoritmeja, jotka eivät vaadi lisämuistia, kutsutaan "paikallaan" -lajiksi. Yksi helpoimmista toteuttaa on hidas kuplalajittelu, joka skannaa jokaisen luetteloparin ja vaihtaa paikkoja halutun järjestyksen mukaan.

Vaihe 2

Lajittelumenetelmä on nopeampi etsimällä vähimmäis- tai enimmäiskohde luettelosta. Jos lajitellaan aakkosjärjestyksessä, sinun on löydettävä joka kerta kun luet luetteloa, sen suurin elementti - tämä on merkkijono, joka alkaa aakkosen alkuun lähinnä olevalla kirjaimella. Kun merkkijono on löydetty, se vaihdetaan luettelon ensimmäisen kohteen kanssa ensimmäisellä kierroksella. Luetteloa tarkemmin tarkasteltaessa ensimmäinen paikka suljetaan pois, seuraava enimmäisosa etsitään, sijoitetaan toiselle sijalle jne. Lajitteluohjelman koodi C ++: ssa luettelon maksimielementin löytämismenetelmällä: String Arr [20], cTemp; int N = 20, Max, Pos; for (int i = 0; i <N- 1; i ++) {Max = Arr ; Pos = i; for (int j = 0; j <N; j ++) {if (Arr [j] <Max) {Max = Arr [j]; Pos = j; } cTemp = Arr ; Arr = Arr [Pos]; Arr [Pos] = cTemp; }}

Vaihe 3

Optimaalisin ratkaisu merkkijonotietojen tilaamiseen luettelosta on lisäyslajittelu. Sen ydin on siinä, että jokaisella luettelon läpikäynnillä on järjestetty osa luettelosta tietty määrä elementtejä, joten seuraava tarkasteltava elementti sijoitetaan sopivaan paikkaan luettelossa. Lisäyslajittelualgoritmin C ++ -koodi: Merkkijono Arr [20], cTemp; int N = 20; for (int i = 1, j = 0; i <N; i ++) {cTemp = Arr ; j = i - 1; kun (cTemp <Arr [j]) {Arr [j + 1] = Arr [j]; j--; jos (j <0) rikkoutuu; Arr [j + 1] = cTemp; }}

Suositeltava: