TE Ejercicios

También podría gustarte

Está en la página 1de 6

PROCEDURE Buscar(VAR a:vector;c:INTEGER):CARDINAL; VAR j:CARDINAL; BEGIN j:=1; WHILE (a[j]<c) AND (j<n) DO j:=j+1 END; IF a[j]=c THEN

RETURN j ELSE RETURN 0 END END Buscar; T(n) = 6 Caso mejor T(n) = 6n + 2 Caso peor

PROCEDURE PosMinimo(VAR a:vector;i,j:CARDINAL):CARDINAL; (* devuelve la posicion del minimo elemento de a[i..j] *) VAR pmin,k:CARDINAL; BEGIN pmin:=i; FOR k:=i+1 TO j DO IF a[k]<a[pmin] THEN pmin:=k END END; RETURN pmin; END PosMinimo; T(n) = 6 (j i) + 5 Caso mejor T(n) = 7 (j i) + 5 Caso peor

PROCEDURE Intercambia(VAR a:vector;i,j:CARDINAL); (* intercambia a[i] con a[j] *) VAR temp:INTEGER; BEGIN temp:=a[i]; a[i]:=a[j]; a[j]:=temp END Intercambia;

PROCEDURE Muestra (VAR a:vector;c:INTEGER):CARDINAL; VAR inf,var,i:CARDINAL; BEGIN inf:=1; var:=n; WHILE (var>=inf) DO i:=(inf+var) DIV 2; IF a[i]=c THEN RETURN i ELSIF c<a[i] THEN var:=i-1 ELSE inf:=i+1 END END; RETURN 0; END Muestra;

CONST n = ...; TYPE vector = ARRAY [1..n] OF INTEGER; Consideramos entonces los procedimientos y funciones siguientes: PROCEDURE Algoritmo1(VAR a:vector); VAR i,j:CARDINAL; temp:INTEGER; BEGIN FOR i:=1 TO n-1 DO FOR j:=n TO i+1 BY -1 DO IF a[j-1]>a[j] THEN temp:=a[j-1]; a[j-1]:=a[j]; a[j]:=temp END END END END Algoritmo1;

También podría gustarte