База ответов ИНТУИТ

Программирование на языке Pascal

<<- Назад к вопросам

Какой метод сортировки реализует этот фрагмент программы?
for i:= 2 to N do  begin x:= a[i]        for j:= i-1 downto 1 do          if a[j]>x then a[j+1]:= a[j]                      else break        a[j+1]:= x;  end;

(Отметьте один правильный вариант ответа.)

Варианты ответа
сортировка простыми вставками с барьером
сортировка простыми вставками(Верный ответ)
сортировка простым выбором
сортировка бинарными вставками
Похожие вопросы
Какой метод сортировки реализует этот фрагмент программы?
for i:= 1 to n-1 do  begin x:= a[i+1];        l:= 1;        r:= i;        while l<=r do         begin          s:= (l+r)div 2;          if a[s]<x then l:= s+1                    else r:= s-1;         end;        for j:= i downto 0 do a[j]:= a[j+1];        a[l]:= x;  end;
Какой метод сортировки реализует этот фрагмент программы?
for i:= 2 to n do  begin min:= a[i-1];        for j:= i to n do           if a[j]<= min           then begin min:= a[j];                      k:=j                end;        x:= a[i-1];        a[i-1]:= a[k];        a[k]:= x;  end;
Какой алгоритм реализует приведенная ниже программа?
const nnn=10000;type s1 = ^s2;     s2 = record n,k,v: integer;                 next: s1;          end;var f: text;    head,p,q: s1;    x,i,kr,vr,nxt,kol_ver: integer;    a: array[1..nnn] of integer;begin assign(f,'in'); reset(f); readln(f,kol_ver); new(head); with head^ do readln(f,n,k,v); head^.next:= nil; while not eof(f) do  begin   new(q);   with q^ do readln(f,n,k,v);   q^.next:= nil;   if q^.v <= head^.v    then begin q^.next:= head;               head:= q;               continue         end;   p:= head;   while p^.next<>nil do    begin     if q^.v > p^.next^.v      then p:= p^.next      else begin            q^.next:= p^.next;            p^.next:= q;            break;           end;    end;   if p^.next = nil then p^.next:= q;  end; close(f);p:=head;while p<>nil do beginwrite(p^.v,' '); p:=p^.next;end;writeln('*'); for i:= 1 to kol_ver do a[i]:= 0; kr:= 0; vr:= 0; nxt:= 0; p:= head; while (p^.next <> nil)and(kr<kol_ver)do  with p^ do   begin    if a[n]=0     then if a[k]=0            then begin inc(kr);                       inc(vr,v);                       inc(nxt);                       a[n]:= nxt;                       a[k]:= nxt;                 end            else begin a[n]:= a[k];                       inc(vr,v);                 end     else if a[k]=0            then begin a[k]:= a[n];                       inc(vr,v);                 end            else if a[n]<>a[k]                   then begin x:= a[k];                              for i:= 1 to kol_ver do                                if a[i]=x then a[i]:=a[n];                              inc(vr,v)                 end;    p:= next   end; writeln(vr)end.
Какой алгоритм реализует приведенная ниже программа?
const nnn = 10000;type uk = ^ukk;     ukk = record v: integer;                  next: uk;              end;var head: array[1..nnn] of uk;    a: array[1..nnn] of integer;    ii,i,j,k,n: integer;    q,p: uk;    f: text;procedure dob(ii,jj: integer); {добавление ребра}var pp,qq: uk;begin new(qq); qq^.v:=jj; qq^.next:=nil; if head[ii]=nil  then head[ii]:=qq     {вставка первого}  else begin            {вставка остальных}        pp:=head[ii];        while pp^.next<>nil do pp:=pp^.next;        pp^.next:=qq;       end;end;begin{------- считывание графа ------------} ... readln(f,n);	{кол-во вершин в графе} while not eof(f) do  begin   read(f,i,j);   if i<>j then begin                 dob(j,i);                 dob(i,j);                end;  end;{--------- инициация массива ---------} for i:=1 to n do begin                       head[i]:=nil;                       a[i]:=0;                      end;{------- основная часть -------------} k:=0;     i:=1; repeat  k:=k+1;  a[i]:=k;  p:=head[i];  while p<>nil do   begin    j:=p^.v;    a[j]:=k;    if (head[j]<>nil) and (i<>j)     then begin           q:=p;           while q^.next<>nil do q:=q^.next;           q^.next:=head[j];           head[j]:=nil;          end;    p:=p^.next;   end;  i:=i+1;  while (head[i]=nil) and (i<=n) do i:=i+1; until i=n+1;  for i:=1 to n do  if a[i]=0 then k:=k+1;  writeln(k); {выдача результата}end.
Какие из приведенных ниже отрывков программ хорошо структурированы?
1)	while not eof(f) do  begin inc(n);        read(f,a[n]);        inc(obsh_ves,a[n]);  end;close(f);min:= MaxLongInt;2)	while head<>nil do beginwith head^.e^ doif from^.dist+len < toward^.dist then begintoward^.dist:= from^.dist + len;enqueue(toward,queue,head);end;next_head:= head ^.next;dispose(head);head:= next_headend;3)	  while left<=right do   begin    sred:= (left+right)div 2;    if a[sred]<x then left:= sred+1                 else begin right:= sred-1;                             inc(k);                       end;   end; for j:= i-1 downto left do a[j+1]:= a[j];4)	  while p<>nil do begin   j:=p^.v;   a[j]:=k;   if (head[j]<>nil) and (i<>j) then begin    q:=p;    while q^.next<>nil do q:=q^.next;    q^.next:=head[j];    head[j]:=nil;   end;   p:=p^.next;  end;
Какое значение получит переменная a после выполнения такой программы?
var a: byte;proc p1(var k: byte);proc p2(t: byte); begin t:= t*2 end;var a: byte; begin a:= 1;       k:= 5;       p2(k); end;begin a:= 10; p1(a);end.
Какое значение получит переменная a после выполнения такой программы?
var a: byte;proc p1(var t: byte); begin t:= t*2 end;proc p2(var k: byte);var a: byte; begin a:= 1;       k:= 5;       p1(k); end;begin a:= 10; p2(a);end.
Какое значение получит переменная a после выполнения такой программы?
var a: byte;proc p1(k: byte);proc p2(var t: byte); begin t:= t*2 end;var a: byte; begin a:= 1;       k:= 5;       p2(a); end;begin a:= 10; p1(a);end.
Пирамидальный метод сортировки является:
Метод быстрой сортировки является: