Ela funciona bem. Na pior das hipóteses, ela demora n.
Legal!
No pior caso o consumo de tempo é proporcional a n.
Nesses casos, como veremos nas próximas aulas, também é comum dizermos que o consumo de tempo é O.
Agora, o que vocês acham da seguinte função recursiva.
Está correta? Consumo de tempo?
#----------------------------------------------- def indice(item, lista): '''(objeto,list) -> int ou None Recebe um objeto 'item' e uma lista 'lista' e retorna o menor índice de uma posição em que item ocorre na lista. Caso item não ocorra na lista a função retorna None.
Pré-condição: supõe n >= 0.
Exemplos: >>> indice(1,[-2,13,1,14]) 2 >>> indice(1,[1,-2,13,14]) 0 >>> indice(1,[2,13,14,1]) 3 >>> indice(1,[2,13,14,-1]) >>> indice(1.3,[2,13,14,1.3]) 3 ''' if item == lista[0]: return 0 return 1 + indice(item, lista[1:]) # equivalente a: return 1 + indice(item,lista[1:n])