profile
Опубликовано 6 лет назад по предмету Информатика от Лена9696

помогите пожалуйста составить программу
Заполнить массив из 500 элементов случайными числами в интервале [0..100]. Отсортировать его по возрастанию двумя способами – методом «пузырька» и методом «быстрой сортировки» . Вывести на экран число перестановок элементов массива в том и в другом случае. Массив выводить на экран не нужно.

  1. Ответ
    Ответ дан MagAragorn
    var a,i,j,b,p,p1:longint;
    m:array[0..501] of longint;
    procedure qsort(l,r:longint);
    var q,w,i,j,p:longint;
    begin
    q:=m[(l+r) div 2];
    repeat
    while m[i]<q do inc(i);
    while m[j]>q do dec(j);
    if i<j then
    begin
    w:=m[i];
    m[i]:=m[j];
    m[j]:=w;
    inc(i); dec(j);inc(p);
    end;
    if i=j then
    begin
    inc(i);dec(j);
    end;
    until i>j;
    if i<r then qsort(i,r);
    if j<l then qsort(l,j);
    p1:=p;
    end;
    begin
    for i:=1 to 500 do
    m[i]:=random(100);
    for i:=1 to 500 do
    for j:=500 downto i+1 do
    if m[j]<m[i] then
    begin 
    a:=m[j]; 
    m[j]:=m[i]; 
    m[i]:=a; 
    inc(p);
    end;
    writeln(p);
    qsort(1,500);
    writeln(p1);
    end.
Самые новые вопросы