void gnomeSort(int[] a) {
int i = 1;
while(i < a.length) {
if(i==0 || a[i - 1] <= a[i])
i++;
else {
int temp = a[i];
a[i] = a[i - 1];
a[i - 1] = temp;
i--;
}
}
}
Задачка тем кто в теме))) Преобразовать в asm.
void gnomeSort(int[] a) {
int i = 1;
while(i < a.length) {
if(i==0 || a[i - 1] <= a[i])
i++;
else {
int temp = a[i];
a[i] = a[i - 1];
a[i - 1] = temp;
i--;
}
}
}
Задачка тем кто в теме))) Преобразовать в asm.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
а по русски?
а числа 8 битные или 16 битные?
С уважением,
Jerri / Red Triangle.
А в чем подвох? Элементарно же всё, алгоритм разложен по полочкам.
Упрощенно как-то так... Не совсем по сишной реализации, но суть та же - если при проходе ничего не поменялось, это конец
В рег.C хранится флаг "был обмен элементов".Код:label: ld hl,array ld b,arraysize-1 ld c,0 loop: ld a,(hl) inc hl cp (hl) jr c,noswap ld d,(hl) ld (hl),a dec hl ld (hl),d inc hl ld c,1 noswap: djnz loop dec c jr z,label ret
Все любят гипножабу
Ага. Ну и оптимизировать можно.
Мда. В 3 ночи что-то проморгал этот момент
Все любят гипножабу
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)