![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 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. помогите плизз |
![]() |
![]() |
![]() |
#2 |
Заблокирован
Регистрация: 30.10.2009
Сообщений: 468
|
![]()
Точно сам писал? просто если бы сам писал то понял в чем дело...м...когда вижу Goto хочется выброситься с окна..
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сортировка Шелла и Шейкер-сортировка | 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 |