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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2010, 10:57   #1
semak
Новичок
Джуниор
 
Регистрация: 19.01.2010
Сообщений: 2
Печаль паскаль, сравнение сортировок Хоара и пузырька

подскажите пожалуйста ошибки в коде, при вводе 12345 в хоаре количество перестановок должно быть 0, (N-кол-во элементов массива_,ncomp-кол-во сравнений, nrrng-кол-во перестановок)

сейчас не прально!
Код:
uses crt;
Const N=6;
Type
Mas=array[1..n] of integer;
var
z: mas;
a: mas;
k,i,j,tmp: integer;

  ncomp,nrrng: longint;

function Part(l, r: integer): integer;
  var
    v, b: integer;
    i, j: integer;
  begin

    v:=a[r];
    i:=l-1;
    j:=r;
    repeat
      repeat
        dec(j);
        inc(ncomp); //!!!
        until (a[j]<=v) or (j=i+1);
      repeat
        inc(i);
        inc(ncomp); //!!!
        until (a[i]>=v) or (i=j-1);
       inc(nrrng); //!!!
      b:=a[i];
      a[i]:=a[j];
      a[j]:=b;
      until (i>=j);
    inc(nrrng); //!!!
    a[j]:=a[i];
    a[i]:=a[r];
    a[r]:=b;
    part:=i;
  end;

procedure QuickSort(l,t: integer);
var i: integer;
begin
if l<t then
begin
i:=part(l, t);
QuickSort(l,i-1);
QuickSort(i+1,t);
end;
end;

begin
clrscr;
for k:=1 to N do
begin
readln(a[k]);z[k]:=a[k];
end;




ncomp:=0;
nrrng:=0;
QuickSort(1,n);
writeln;
writeln('вывод значений методом Хоара ncomp= ',ncomp,' nrrng= ',nrrng);
for k:=1 to n do
write(a[k]:4);
writeln;

ncomp:=0;
nrrng:=0;

for i:=N-1 downto 1 do
for j:=1 to i do
begin
inc(ncomp);
if z[j]>z[j+1] then
begin
tmp:=z[j];
inc(nrrng);
z[j]:=z[j+1];
z[j+1]:=tmp;
end;
end;
write('вывод значений пузырьком ncomp= ',ncomp,' nrrng= ',nrrng);
for i:=1 to n do
write(z[i]:4);
writeln;
end.

Последний раз редактировалось semak; 01.12.2010 в 11:00.
semak вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посчитать количество сравнений в сортировке Хоара(паскаль) semak Помощь студентам 0 24.11.2010 10:17
курсач по С++ на тему сортировок методом пузырька и челночным методом ffocus Фриланс 13 05.01.2010 20:20
Сравнение в паскаль Asicks Помощь студентам 10 02.01.2010 18:55
Сравнение сортировок Паскаль Igomax Помощь студентам 6 24.10.2009 17:58