Тема: Рекурсия
Показать сообщение отдельно
  #2  
Старый 19.12.2015, 23:42
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Рекурсия в сортировке простым выбором? Вот это поворот. Ну да ладно. Как-то так, например:
Код:
procedure SelectionSort(A: mass; n: integer; i: integer);
var
    min, t: integer;
begin
    t:=A[i];
    min:=i;
    for j:=i+1 to n do
        if (A[min]>A[j])then
            min:=j;
    if (min<>i) then
    begin
        A[i]:=A[min];
        A[min]:=t;
    end;
    if i < n then
        SelectionSort(a, n, i + 1);
end;
А главную процедуру можно сократить.
Код:
vvodposl(a,n);
vivodposl(a,n,true);
SelectionSort(A,n,1);
vivodposl(a,n,false);
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием