Первый+вариант+сортировки+прямым+обменом


 * Первый вариант сортировки прямым обменом**

Этот метод основан на сравнении и обмене пар соседних элементов до их полного упорядочивания (программа prg4_101.asm). В народе этот метод называется методом пузырьковой сортировки. Действительно, если упорядочиваемую последовательность расположить не слева направо, а сверху вниз («слева» — это «верх»), то визуально каждый шаг сортировки будет напоминать всплытие легких (меньших по значению) пузырьков вверх.

ПРОГРАММА prg4_101 //.. //prg4_101 - программа на псевдоязыке сортировки прямым обменом 1 //Вход: mas[n] - неупорядоченная последовательность байтовых двоичных значений. //Выход: mas[n] - упорядоченная последовательность байтовых двоичных значений. //....-.. ПЕРЕМЕННЫЕ INTJ3YTE n=8: //количество элементов в сортируемом массиве INT_BYTE mas[n]; //сортируемый массив размерностью п (О..п-l) INTJYTE X: i-0; j-0 // i. j - индексы НАЧ_ПРОГ ДЛЯ i:=l ДО n-1 //i изменяется в диапазоне L.n-l НАЧ_БЛ0К_1 ДЛЯ j:=n-l ДОВНИЗ i //j изменяется в диапазоне 1+1.,П ЕСЛИ mas[j-l]< mas[j] TO НАЧ_БЛОК_2 x:=mas[j-l]; mas[j-l]:=mas[j]: mas[j]:=X К0Н_БЛ0К_'2 К0Н_БЛ0К_1 КОН_ПРОГ ПОВТОРИТЬ .data ДЛЯ j:=r ДОВНИЗ 1 //j изменяв!
 * prg4_101.asm - программа на ассемблере сортировки прямым выбором 1.
 * задаем массив ЕСЛИ mas[j-l]< mas[j] TO

masdb 44,55.12,42.94.18.06,67 НАЧ^БЛОК_1 n=$-mas x:=mas[j-l]: mas[j-l]: X db 0 КОН БЛОК 1 ДЛЯ j:-l ДОВНИЗ г //j изменяв" .code ЕСЛИ mas[j-l]< mas[j] TO НАЧ_БЛОК_2 mov ex, n -1 КОН БЛОК 2 mov si .1 r:=k-l cycl1: ПОКА (1>г) push ex КОН_ПРОГ mov ex n 1 1 1\щ/ V \— Г\, 1 1 sub ex,si количество повторений внутреннего цикла :prg4 104.asm - программа на аса push si временно сохраним i - теперь j=n mov si ,n-l
 * внешний цикл - по 1 x:=mas[j-l]: mas[j-l]:

cycl2: :ЕСЛИ mas[j-l]< mas[j] TO .data mov al ,mas[si-l] :задаем массив cmpmas[si].al masdb 44.55,12.42.94.18.06.67 ja ml n=$-mas movx.al :x=mas[j-l] X db 0 mov al ,mas[si] L dw 1 mov mas[si-l],al ;mas[j-l]= mas[j] R dw n mov al,x k dw n mov mas[si].al :mas[j]=x ml: dec si :цикл по j с декрементом n-i раз .code loop cycl2 ;.... :1:=2: г:=n: k: =n pop si cycl3: :ДЛЯ j:-r ДОВНИЗ 1 inc si mov si .R : j:=R pop ex push si loop cycll sub si.L pop si
 * .... mov ex,si количество по

Сложные структуры данных-[Электронный ресурс]. Режим доступа: http://exzilnetik.narod.ru/html/aeaaa12.html