IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> Сортировка массива.
dushik
сообщение 21.09.2004 18:43
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


Заранее скажу, я ламак в асме, прошу не осуждать за столь тупую просьбу smile.gif
Был бы очень благодарен, если бы кто-нибудь помог дописать пузырьковую сортировку:
Uses crt;

Const
    mas : Array [0..9] of Byte = (2, 1, 24, 3, 53, 7, 18, 114, 11, 17);

Var
    i   : Integer;

Begin
    asm
       lea di,mas
       lea si,mas
       mov cx,9
       @loop2:
       mov al,[di]
       inc di
       mov ah,[di]
       inc di
       cmp al,ah
       jng @endif
       {Обмен}
       mov bl,al
       mov dl, [di-1]
       mov [di-2], dl
       mov [di-1], al
       {Конец обмена. Этот обмен надо проделать в цикле.}
       @endif:
       loop @loop2
    end
end.

Моя программа пробегая по массиву меняет только пары элементов, если
mas[i] < mas [i + 1]. Т. е. меняет местами (если это требуется) только елементы 0 и 1, 2 и 3, 3 и 4... А должен после обмена пары mas[i] и mas[i + 1],
двигаться к началу массива пока элемент не встанет в нужное место, примерно так:
for j := i downto 1
begin
    if (mas[j] <= mas[j - 1]) then
        {обменять}
    else
         break;
end;
Я уже как только не пробовал дописать цикл назад с заменами, не выходит <_<
Помогоите дописать кому не в лом, плиз.
Заранее благодарен smile.gif


--------------------
На самом деле самого дела нет. В самой деятельности заключена самость дела и наоборот. Наоборот получим оборот на, таким образом перевернем образ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 26.07.2025 0:31
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"