Jūs esateŽurnalai / Ernestas Kardzys's blog / Kai Burbulai nusiburbuliuoja...
Kai Burbulai nusiburbuliuoja...
Jeigu programuojate ir Jums teko surikiuoti kokią vieną - kitą krūvelę skaičių, tad reikės pasirinkti kokį nors rikiavimo algoritmą.
Jeigu skaičių nedaug, tai nėra ko sukti galvos - pasiimam Burbulo rikiavimo algoritmą ir rikiuojame skaičiukus. Aišku, Burbulo rikiavimo algoritmo sudėtingumas yra О(n²), kas, kaip turbūt sutiksite, yra labai blogai. Bet, jei rikiuojame kokius 10 skaičių - tai ne problema.
Manęs paprašė, jog padėčiau išspręsti vieną programavimo uždavinį. Dokumente buvo sudėtas Burbulo rikiavimo algoritmas, kuris turi du ciklus:
for (int i = 0; i < n; i++)
for (int j = i; j < n; j++)
Kaip turbūt pastebėjote, šioje vietoje yra vienas netikslumas. Bėda tame, kad du kartus yra tikrinamas tas pats paskutinis elementas: array[n-1]= array[n-1] (paskutinėje iteracijoje). Burbulas ir taip neefektyvus, tai kam dar labiau tą neefektyvumą didinti?
for (int i = 0; i < n; i++)
for (int j = i; j < n - 1; j++)
Reikės pasiieškoti kokio paprasto ir efektyvesnio algortimo...
http://en.wikipedia.org/wiki/Bubble_sort (Savišvietai)


Na gi turim bucket sort'a :) ko tu dar ieskai :D
Skelbti naują komentarą