Loop Invariante

1. Loop Invariante

Bruna Almeida
FennFelis

(usa Ubuntu)

Enviado em 30/04/2012 - 23:34h

Entrada: Uma seqüência de n números A = <a1, a2, ..., an> e um valor v.

Saída: Um índice i tal que v = A[i] ou o valor especial NIL, se v não aparecer em A.

Escreva um pseudocódigo para pesquisa linear, que faça a varredura da seqüência, procurando por v. Usando um loop invariante, prove que seu algoritmo é correto. Certifique-se de que seu loop invariante satisfaz às três propriedades necessárias.

Solução:


A seguir, encontra-se o pseudocódigo para a pesquisa linear:

PesquisaLinear(A, n, v)

1 for i &#8592; 1 to n
2 do if A [i] = v
3 do return i
4 return NIL



Seu loop invariante é:

Loop Invariante:
( ( v = A [i] ) e ( i < n ) ) ou ( v   A [1 .. i - 1] ) 


Alguem explica essa linha:
( ( v = A [i] ) e ( i < n ) ) ou ( v   A [1 .. i - 1] ) 


Como funcionaria o loop invariante? e dizer onde ela ocorre?
Por exemplo, ela ocorre também no insertion-sort, mas ela existe em qualquer outro algoritmo


  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts