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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2016, 21:55   #1
Кира123
Новичок
Джуниор
 
Регистрация: 05.05.2016
Сообщений: 1
По умолчанию помощь с отладкой программы, Сортировка Хоара

Здравствуйте! Мне нужна помощь с отладкой программы, я в начальной стадии так что не обессудьте что ошибка может быть глупой)) Сортировка Хоара.

Код:
Program p12;
type seq=array[1..3000] of integer;
var
a:seq;
i,j,n:integer;

procedure sort9(a:seq);
 Procedure Sort(var a : Seq; i0,j0 : integer);
 { i0, j0 - granitsi sortiruemogo uchastka }
 Var i, j : integer;  { tekutchie indeksi v massive }
     flag : boolean;  { priznak menyayutchegosya indeksa: esli
             flag=true umen"shaetsya j, inache - uvelichivaetsya i }
     x : integer;
 begin
   writeln('bistraya sortirovka Hoara');
   if j0 <= i0 then Exit; { podmnojestvo pustoe ili iz 1 elementa }
   i:=i0; j:=j0;
   flag:=true; { vnachale budet izmenyat"sya j }
   while i < j do begin
     if a[i] > a[j] then begin
       x:=a[i]; a[i]:=a[j]; a[j]:=x; { perestanovka }
       { posle perestanovki menyaetsya izmenyaemiy indeks }
       flag:= not flag;
       end;
     { real"no izmenyaetsya tol"ko odin indeks }
     if flag then j:=j-1 else i:=i+1;
     end;
   Sort(a,i0,i-1); { sortirovka levogo podmassiva }
   Sort(a,i+1,j0); { sortirovka pravogo podmassiva }
 end;
begin
  p1:=0;  s1:=0; k1:=0; 
  Sort(a,1,n);
end;


begin
{randomize;}
for j:=1 to 3 do begin
if j=1 then n:=30 else
if j=2 then n:=300 else n:=3000;
for i:=1 to n do begin
a[i]:=random(80);
{write(d[i]:3);}
end;  writeln;
sort3(a);
sort2(a);
sort11 (a);
readln;
end;
end.
______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Кира123; 05.05.2016 в 22:07.
Кира123 вне форума Ответить с цитированием
Старый 06.05.2016, 07:58   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Код:
type seq=array[1..3000] of integer;
procedure Init(var a:seq;var n:integer);//создание масссива
var i:integer;
begin
writeln('Массив размерности ',n);
for i:=1 to n do
 begin
  a[i]:=random(1000);
  write(a[i]:4);
 end;
writeln;
end;
procedure print(a:seq;n:integer);//печать отсортированого массива
var i:integer;
begin
writeln('Отсортированный массив ');
for i:=1 to n do
write(a[i]:4);
writeln;
end;
Procedure Sort(var a:seq;n,i0,j0 : integer); //сортировка
Var i, j : integer;
    flag : boolean;
    x : integer;
begin
if j0 <= i0 then Exit;
i:=i0; j:=j0;
flag:=true;
while i < j do
 begin
  if a[i] > a[j] then
   begin
    x:=a[i];
    a[i]:=a[j]; a[j]:=x;
    flag:= not flag;
   end;
  if flag then j:=j-1 else i:=i+1;
 end;
Sort(a,n,i0,i-1);
Sort(a,n,i+1,j0);
end;
var a:seq;
    n,i:integer;
begin
randomize;
n:=3;
for i:=1 to 3 do
 begin
  n:=n*10;
  init(a,n);
  sort(a,n,1,n);
  print(a,n);
 end;
end.
puporev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка от Хоара к Шеллу g[]Iz Общие вопросы C/C++ 1 15.05.2014 01:48
Быстрая сортировка(Хоара) Karl__ Помощь студентам 16 14.12.2013 10:07
Помогите с отладкой программы dykee Помощь студентам 5 20.10.2013 19:56
Быстрая сортировка(сортировка Хоара). Сортировка фрагмента массива [C++] druger Помощь студентам 0 20.04.2012 15:49
Проблемы с отладкой программы lenuxoid Общие вопросы Delphi 5 22.12.2008 08:30