Hyppää sisältöön
    • Suomeksi
    • In English
Trepo
  • Suomeksi
  • In English
  • Kirjaudu
Näytä viite 
  •   Etusivu
  • Trepo
  • Kandidaatintutkielmat
  • Näytä viite
  •   Etusivu
  • Trepo
  • Kandidaatintutkielmat
  • Näytä viite
JavaScript is disabled for your browser. Some features of this site may not work without it.

Pikalajittelu ja lomituslajittelu

Leinonen, Katri (2021)

 
Avaa tiedosto
LeinonenKatri.pdf (542.3Kt)
Lataukset: 



Leinonen, Katri
2021

Tieto- ja sähkötekniikan kandidaattiohjelma - Bachelor's Programme in Computing and Electrical Engineering
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2021-05-21
Näytä kaikki kuvailutiedot
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202104273820
Tiivistelmä
Järjestysalgoritmit ovat hyvin yleisiä algoritmeja ohjelmissa. Sen vuoksi on tärkeää, että ohjelmaan on valittu oikea algoritmi ja että se on toteutettu mahdollisimman tehokkaasti. Jos käyttötapaukseen on valittu epäsopiva algoritmi, ohjelman tehokkuus voi heikentyä huomattavasti.

Hajota ja hallitse -suunnitteluperiaatteen mukainen algoritmi jakaa alkuperäisen ongelman pienempiin osaongelmiin, jotka voidaan ratkaista itsenäisesti. Kun osaongelmat on ratkaistu, voidaan ne yhdistää takaisin yhteen. Näin saadaan alkuperäisen ongelman ratkaisu. Pikalajittelu ja lomituslajittelu ovat hajota ja hallitse -suunnitteluperiaatteen mukaisia järjestysalgoritmeja. Näiden algoritmien toteutuksissa on kuitenkin eroavaisuuksia, minkä vuoksi niiden soveltuvuus eri käyttötapauksiin vaihtelee.

Tämän työn tarkoituksena on selvittää pikalajittelun ja lomituslajittelun soveltuvuus eri käyttötapauksiin. Tässä käytetään apuna niin aiempia tutkimuksia kuin itse suoritettuja suoritusaikatestejä. Tutkimusta varten suoritusaikatestit toteutettiin lomituslajittelulle, single-pivot-pikalajittelun kolmelle erilaiselle toteutukselle ja yhdelle dual-pivot-pikalajittelun toteutukselle. Suoritusaikatesteissä käytettiin sekä satunnaisessa järjestyksessä olevaa dataa että järjestyksessä olevaa dataa.

Suoritusaikatesteistä voidaan havaita, että mikäli ohjelma käsittelee usein järjestyksessä olevaa dataa tai melkein järjestyksessä olevaa dataa, perinteinen pikalajittelu ei ole hyvä vaihtoehto taulukon järjestämiseksi. Jos tiedetään, että ohjelma käsittelee satunnaisesti melkein järjestyksessä olevaa dataa, on kokonaistehokkuuden kannalta järkevintä käyttää lomituslajittelua, koska sillä ei ole yhtä tehotonta huonointa tapausta kuin pikalajittelulla.

Aiempien tutkimuksien perusteella sopivan järjestysalgoritmin valitsemisessa kannattaa huomioida myös muut asiat kuin pelkkä tehokkuus. Jos ohjelma käsittelee hyvin suuria tietojoukkoja, jotka eivät mahdu kerrallaan prosessoivan tietokoneen muistiin, kannattaa käyttää lomituslajittelun ulkoista järjestelyä. Tällä tavoin järjestettävää tietojoukkoa ei tarvitse lukea kokonaisuudessaan prosessoivan tietokoneen muistiin. Lomituslajittelu on valittava myös, jos ohjelma tarvitsee stabiilin järjestysalgoritmin, koska pikalajittelu ei ole stabiili järjestysalgoritmi.
Kokoelmat
  • Kandidaatintutkielmat [9039]
Kalevantie 5
PL 617
33014 Tampereen yliopisto
oa[@]tuni.fi | Tietosuoja | Saavutettavuusseloste
 

 

Selaa kokoelmaa

TekijätNimekkeetTiedekunta (2019 -)Tiedekunta (- 2018)Tutkinto-ohjelmat ja opintosuunnatAvainsanatJulkaisuajatKokoelmat

Omat tiedot

Kirjaudu sisäänRekisteröidy
Kalevantie 5
PL 617
33014 Tampereen yliopisto
oa[@]tuni.fi | Tietosuoja | Saavutettavuusseloste