Kuplalajittelu vs. Valintalajittelu
Kuplalajittelu on lajittelualgoritmi, joka toimii lajiteltavan luettelon läpi toistuvasti samalla kun verrataan vierekkäisiä elementtiparia. Jos pari elementtiä on väärässä järjestyksessä, ne vaihdetaan toisiinsa asettaaksesi ne oikeaan järjestykseen. Tämä läpikulku toistetaan, kunnes uusia vaihtoja ei tarvita. Valintalaji on myös lajittelualgoritmi, joka alkaa etsimällä luettelossa oleva minimielementti ja vaihtamalla se ensimmäisen elementin kanssa. Tämä prosessi toistetaan loput luettelosta asettamalla vaihdetut elementit järjestykseen.
Mikä on Bubble Sort?
Kuplalajittelu on lajittelualgoritmi, joka toimii lajiteltavan luettelon läpi toistuvasti samalla kun verrataan vierekkäisiä elementtiparia. Jos pari elementtiä on väärässä järjestyksessä, ne vaihdetaan toisiinsa asettaaksesi ne oikeaan järjestykseen. Tämä läpikulku toistetaan, kunnes enää vaihtoa ei tarvita (mikä tarkoittaa, että luettelo on lajiteltu). Koska luettelon pienemmät elementit tulevat kärkeen, kun kupla tulee pintaan, sille annetaan nimi kuplalajittelu. Kuplalajittelu on hyvin yksinkertainen lajittelualgoritmi, mutta siinä on keskimääräinen tapausajan monimutkaisuus O (n2) lajitellessaan luetteloa n elementillä. Tämän vuoksi kuplalajittelu ei sovellu lajitteluun, jossa on paljon elementtejä. Mutta yksinkertaisuuden takia kuplalajittelu opetetaan algoritmien johdannossa.
Mikä on valintalajittelu?
Valintalajittelu on myös toinen lajittelualgoritmi, joka alkaa etsimällä luettelon vähimmäisosa ja vaihtamalla se ensimmäisen elementin kanssa. Sitten minimielementti löytyy luettelon lopusta (toisesta elementistä luettelon viimeiseen elementtiin) ja vaihdetaan toisen elementin kanssa. Tämä prosessi toistetaan loput luettelosta asettamalla vaihdetut elementit järjestykseen. Joten valintalajittelussa, algoritmin missä tahansa vaiheessa luettelo on jaettu kahteen osaan, joissa toinen osa sisältää lajiteltuja elementtejä ja toinen osa lajittelemattomia elementtejä. Algoritmin edetessä lajiteltu luettelo kasvaa vasemmalta oikealle. Valintalajilla on myös keskimääräinen tapausajan monimutkaisuus O (n2). Siksi se ei myöskään sovellu suurten luetteloiden lajitteluun.
Mitä eroa on kuplalajittelu ja valintalaji??
Vaikka sekä kuplalajittelu- että valintalajittelualgoritmeilla on tapausten keskimääräiset kompleksisuudet O (n2), kuplalajittelu on melkein koko ajan parempi kuin valintalaji. Tämä johtuu kahden algoritmin tarvitsemasta vaihtosummasta (kuplalajit tarvitsevat enemmän vaihtosopimuksia). Mutta kuplalajittelun yksinkertaisuuden vuoksi sen koodikoko on hyvin pieni. Vakaus on toinen ero näissä kahdessa algoritmissa. Vakaa lajittelualgoritmi on lajittelualgoritmi, joka säilyttää tietueiden järjestyksen, jos luettelo sisältää elementtejä, joilla on sama arvo. Tässä mielessä valintalajittelu ei ole vakaa algoritmi, kun taas kuplalajittelu on vakaa algoritmi.