Отримання знань

дистанційна підтримка освіти школярів


Тут ви можете виконати завдання чи задати питання по змiсту цього уроку.

1 (1) 2014-09-15 15:12:28
{Генеруем у файл n ­ випадкових натуральних чисел з діапазону­  1..max}
var
n,max,i,x:longint;
f1:text;
begin
Assign(f1,'input.txt');
Rewrite(f1);
Write('Введіть n -- ');
ReadLn(n);
Write('Введіть max -- ');
ReadLn(max);
Writeln(f1,n);
Randomize;
for i:=1 to n do begin
x:=random(max)+1;
Write(f1,x,' ');
end;
Close(f1);
end.

{Сортування обміном}
const
Nmax=10000;
type
aInt=array[1..Nmax] of longint;
var
n,i,j:longint;
a:aInt;
f1,f2:text;
Procedure Swap(var x,y:longint);
var
f:longint;
begin
f:=x;
x:=y;
y:=f;
end;
begin
Assign(f1,'input.txt');
Assign(f2,'output.txt');
Reset(f1);
Rewrite(f2);
Read(f1,n);
for i:=1 to n do
Read(f1,a[i]);
for i:=n downto 2 do begin
for j:=i to n do begin
if a[j] then Swap(a[j],a[j-1]);
end;
end;
for i:=1 to n do
Write(f2,a[i],' ');
Close(f1);
Close(f2);
end.

{Сортування вставками}
const
Nmax=10000;
type
aInt=array[1..Nmax] of longint;
var
n,i,j,buf:longint;
a:aInt;
f1,f2:text;
begin
Assign(f1,'input.txt');
Assign(f2,'output.txt');
Reset(f1);
Rewrite(f2);
Read(f1,n);
for i:=1 to n do
Read(f1,a[i]);
for i:=2 to n do begin
buf:=a[i];
j:=i;
while (j>1)and(a[j-1]>buf) do begin
a[j]:=a[j-1];
j:=j-1;
end;
a[j]:=buf;
end;
for i:=1 to n do
Write(f2,a[i],' ');
Close(f1);
Close(f2);
end.


1 (1) 2014-09-17 15:23:59
{Сортування методом Шелла}
const
Nmax=100000;
type
aInt=array[1..Nmax] of longint;
var
n,i,j,buf,h:longint;
a:aInt;
f1,f2:text;
begin
Assign(f1,'input.txt');
Assign(f2,'output.txt');
Reset(f1);
Rewrite(f2);
Read(f1,n);
for i:=1 to n do
Read(f1,a[i]);
h:=n div 2;
while h>0 do begin
for i:=h to n-h+1 do begin
buf:=a[i];
j:=i;
while (j>h)and(a[j-h]>buf) do begin
a[j]:=a[j-h];
j:=j-h;
end;
a[j]:=buf;
end;
h:=h div 2;
end;
for i:=1 to n do
Write(f2,a[i],' ');
Close(f1);
Close(f2);
end.
-------------------
Цікаво, що при сортуванні масиву 100000 чисел затрачено комп.часу:
Сортування обміном -- ~50с
Сортування вставками -- ~20с
Сортуванням методом Шелла -- < 1с.

Повернутися до уроку

Повернутися до перелiку уроків курсу

В системі: гості - (); користувачі - (0)