Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Daniel Bedialauneta
- #Devuelve posición de primera aparición de la cadena s2 en la cadena s1
- def find(s2,s1): #len(s2)=m y len(s1)=n
- n=len(s1)
- m=len(s2)
- #Hasta aquí 1
- for i in range(n): #Coste (Suma:k=1 --> i+1)(m), donde i es la posición, por lo que i+1 es la cantidad de repeticiones
- if s1[i:i+m]==s2: #Coste m, porque tiene que comparar una cadena de m caracteres
- return i
- return None #delta(i+1=n)
- """
- m=longitud de s2
- n=longitud de s1
- i=posición
- i+1=cantidad de repeticiones del for
- t(n)=1+(Suma:k=1 --> i+1)(m)+delta(i+1=n)= 1 + (i+1)*m + delta(i+1=n)
- Mejor caso: la cadena s2 aparece en i=0, es decir, i+1=1. Por tanto, delta(i+1=n)=0
- t(n) = 1 + m + delta(i+1=n) = m+1
- Es decir, t(n) está en O(m)
- Peor caso: la cedena s2 no aparece, es decir, i+1=n. Por tanto, delta(i+1=n)=1
- t(n) = 1 + n*m + 1 = n*m + 2
- Es decir, t(n) está en O(n*m)
- """
Add Comment
Please, Sign In to add comment