Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2009, 17:35   #1
Haskell
 
Регистрация: 06.12.2009
Сообщений: 2
По умолчанию Сортировка

Задача
Осортировать массивы(A,B,C) методоми : cортировка мтодом выбора, сортировка методом обмена и быстрая сортировка.

Осортировать и вывести по убыванию. (использовать procedure), X=i*i*i, надо узнать сколько было перестановок в каждом массиве.

вот я написал но без сравнений и перестановок.

Program сортировка;
{$APPTYPE CONSOLE}
uses
SysUtils;
Type mass=array[1..50] of Integer;
Procedure c_m(Var X:mass; n:integer);
Var i:integer;
begin
For i:=1 to n do
X[i]:=i*i*i;
end;
Procedure p_m(Var X: mass; n: Integer);
Var i:integer;
begin
For i:=1 to N
Do Write(X[i],' ');
Writeln;
end;
Procedure Sort_met_vib (Var X:mass; n:Integer);
Var i,j,k, kol_sr,kol_per:integer;
begin
For i:=1 to (N-1)
Do begin
kol_sr:=kol_sr+1;
For j:=i+1 to N
Do If X[i]<X[j]
Then Begin
Kol_per:=kol_per+1;
K:=X[i];
X[i]:=X[j];
X[j]:=K;
End;
//Writeln(kol_sr,kol_per);
End;
end;
Procedure Sort_met_obm (Var X: mass; n: Integer);
Var i, j,k, kol_sr,kol_per:integer;
begin
For i:=2 to N
Do begin
Kol_sr:=kol_sr+1;
For j:=N downto I
Do If X[j-1]<X[j]
Then Begin
kol_per:=kol_per+1;
K:=X[j-1];
X[j-1]:=X[j];
X[j]:=K;
End;
//Writeln(kol_sr,kol_per);
End;
End;
Procedure Sort_bistr (Var Y: mass; n: Integer);
Label L1;
Var i, j, kol_sr,kol_per,first,last,x,z,k:int eger;
Begin
First:=1;
Last:=N;
L1:i:=First;
j:=Last;
z:=(i+j) div 2;
X:=Y[z];
Repeat
While Y[i]>X
Do i:=i+1;
While Y[j]<X
Do j:=j-1;
If i<=j
then Begin
kol_per:=kol_per+1;
K:=Y[i];
Y[i]:=Y[j];
Y[j]:=K;
i:=i+1;
j:=j-1;
End;
kol_sr:=kol_sr+1;
Until i >j;
If First < j
Then Begin
Last:=j;
Goto L1;
End;
If (i<=Last) and (i<N)
Then Begin
First:=i;
Last:=N;
Goto L1;
End;
//Writeln(kol_sr,kol_per);
End;
Var A,B,C:mass;
Begin
C_m(A,50);
Writeln('Massiv a');
P_m(A,50);
Writeln('Otsortirovann A');
Sort_met_vib(A,50);
P_m(a,50);
C_m(b,50);
Writeln('Massiv b');
P_m(b,50);
Writeln('Otsortirovann b');
Sort_met_obm(b,50);
P_m(b,50);
C_m(c,50);
Writeln('Massiv c');
P_m(c,50);
Writeln('Otsortirovann c');
Sort_bistr(C,50);
P_m(c,50);
Readln;
End.

помогите плизз
Haskell вне форума Ответить с цитированием
Старый 06.12.2009, 18:43   #2
CodeExpert
Заблокирован
 
Регистрация: 30.10.2009
Сообщений: 468
По умолчанию

Точно сам писал? просто если бы сам писал то понял в чем дело...м...когда вижу Goto хочется выброситься с окна..
CodeExpert вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка Шелла и Шейкер-сортировка AleksandrMakarov Паскаль, Turbo Pascal, PascalABC.NET 11 11.03.2012 12:18
Сортировка методом линейного выбора и "быстрая" сортировка Карол Помощь студентам 4 27.09.2009 19:52
Сортировка файлов в Explorer vs сортировка в Delphi mutabor Общие вопросы Delphi 11 04.09.2009 14:32
1. Сортировка Шелла по убыванию 2. Сортировка вставками по убыванию Arkuz Помощь студентам 1 25.09.2007 17:16