Analiza złożoności czasowej kodu
Mariusz:
Mamy daną procedurkę
procedure proc(var A:tablica;i,n:integer);
var l,r,m:integer;
temp:real;
b:boolean;
begin
b:=true;
while ((i<=n) and b) do
begin
left:=2*i;
right:=2*i+1;
if(l<=n) and (A[l]>A[i]) then
m:=l
else
m:=i;
if(r<=n) and (A[r]>A[m]) then
m:=r;
b:=(m<>i);
if(b) then
begin
temp:=A[i];
A[i]:=A[m];
A[m]:=temp;
i:=m;
end;
end;
end;
Ile razy wykona się pętelka w tej procedurze ?
5 gru 13:29
jc: Skąd bierzesz wartość zmiennej l?
5 gru 14:10
Mariusz:
Pierwotnie zmienne l oraz r nazywały się left i right i zapomniałem
wykasować starą nazwę tych zmiennych
5 gru 14:56
Mariusz:
Gdyby użyć pętli repeat until to można by się obyć bez zmiennej logicznej
(aby skonstruować warunek logiczny trzeba by skorzystać z prawa de Morgana)
Oprócz tego ile razy wykona się pętelka
ciekawy jestem czy może nastąpić przekroczenie zakresu typu integer
i jak temu zapobiec
6 gru 00:09