самая медленная сортировка - метод пузырька
вот ещё тебе два варианта её
Код
//сортировка методом пузырька на ассемблере
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;