Achar quantas ocorrências que podem ter um algoritmo ?

Escreva um algoritmo que receba um conjunto de N valores , uma chave k e retorne quantas ocorrências i . Caso a chave não esteja presente deve retornar o valor i=-1 .Considerando o algoritmo definido por você, responde o que se pede .
a) em que situação ocorre o melhor caso ?
b) Em que situação ocorre o pior caso ?
c) Calcule a fórmula do tempo de execução T(n) do algoritmo para uma entrada de tamanho n
d) Mostre através de um loop invariante que seu algoritmo correto . Lembre se que (I) enuncia a propriedade do loop é verdadeira antes do loop iniciar (II) após a execucação de iteração i e (IV) apos a execução ( considerando contagem de ocorrências)

E ai, qual o algoritmo que vc definiu, fera?