![]() |
|
#1
|
|||
|
|||
![]() Помогите добавить рекурсию в сортировку простым выбором. Пожалуйста,очень срочно! И гляньте вывод исходного и полученного массива. нельзя портить исходные данные. Исходные в моей программе выводятся
Вот сама сортировка: Код:
program Project2; {$APPTYPE CONSOLE} uses SysUtils; const max=100; type mass=array[1..max] of integer; var i, j, n: integer; A: mass; flag:boolean; procedure vvodposl(var a:mass;var n:integer); var fin: textfile; i:integer; begin assignfile(fin,'f1.txt'); reset(fin); readln(fin,n); for i:=1 to n do read(fin,a[i]); close(fin); end; procedure vivodposl(const a:mass;var n:integer;flag:boolean); var i:integer; fout:text; begin assign(fout,'f2.txt'); if flag then rewrite(fout) else append(fout); write(fout,'ÈñõîäГ*Г*Гї ïîñëåäîâГ*òåëüГ*îñòü: '); for i:=1 to n do write(fout,a[i]); writeln(fout); close(fout); end; procedure SelectionSort(A: mass; n: integer); var min, t: integer; begin for i:=1 to n do 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; end; end; begin vvodposl(a,n); flag:=true; vivodposl(a,n,flag); SelectionSort(A,n); flag:=false; vivodposl(a,n,flag); end. |
#2
|
||||
|
||||
![]() Рекурсия в сортировке простым выбором? Вот это поворот. Ну да ладно. Как-то так, например:
Код:
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. Последний раз редактировалось Bargest, 19.12.2015 в 23:47. |