Jūs esate

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)

Komentarai

Na gi turim bucket sort'a :) ko tu dar ieskai :D

Komentuoti