Jūs esate

rikiavimas

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į.

Laiko matavimas C++ kalboje

Funkcijos veikimo laiką C++ kalboje galima pasinaudojant clock() funkcija, kuri gyena ctime.h bibliotekoje: clock_t start = clock(); //Veiksmai... // clock_t ends = clock(); cout << "Veikimo laikas: " << (double) (ends - start) / CLOCKS_PER_SEC << endl; Visas šis gėris turėtų pateikti laiką. Problema tame, kad dabartiniai procesoriai labai greiti, taip kad naudos iš tokios funkcijos nedaug - bent jau GnomeSort rikiavimo atveju iš 10-ies skaičių...

Gnome Sort

Wikipedia'oje radau Gnome Sort algoritimą, kuris turėjo tik Python'o kalba parašytą metodą. Tad pridėjau aš ant JAVA tą patį metoduką. void gnomeSort(int array[]) { int n = 0; int temp = 0; while (n < array.length - 1) { if (array[n] > array[n + 1]) {    temp = array[n];    array[n] = array[n + 1];    array[n + 1] = temp;    if (n > 0)       n--;    else       n++; } else     n++; } Plačiau apie šį rikiavimo metodą: http://en.wikipedia.org/wiki/Gnome_sort
Subscribe to rikiavimas