самая медленная сортировка - метод пузырька
вот ещё тебе два варианта её
Код
//сортировка методом пузырька на ассемблере
procedure BubbleSort(Mas: Pointer; Len: LongWord);
asm
dec Len
@CycleExt:
xor ebx,ebx
mov ecx,Len
mov esi,0
@CycleIn:
mov edi,Mas[esi]
cmp edi,Mas[esi+4]
jg @Exchange
add esi,4
loop @CycleIn
jmp @Check
@Exchange:
mov ebx,Mas[esi+4]
mov Mas[esi+4],edi
mov Mas[esi],ebx
add esi,4
loop @CycleIn
@Check:
cmp ebx,0
je @Exit
jmp @CycleExt
@Exit:
end;
//сортировка методом пузырька на паскале
procedure BubSort(var Mas: Array of Integer);
var
i: LongWord;
Tmp: Integer;
Fix: Boolean;
begin
repeat
Fix := False;
for i := 0 to Length(Mas) - 1 do
if Mas[i] > Mas[i + 1] then
begin
Tmp := Mas[i];
Mas[i] := Mas[i + 1];
Mas[i + 1] := Tmp;
Fix := True;
end;
until not Fix;
end;