Saltar a contenido

Clase 26 Marzo: Relaciones RR y Funciones alto orden

Apuntes adicionales

Estimación complejidad algoritmo recursivo

T(n) = aT(n/b) + f(n) a numero suproblemas n/b tamaño de cada problema f(n) lo que cuesta dividir + combinar

Ejemplo de función recursiva para encontrar elementos repetidos

def buscarRepetidos(l1:List[Int], l2:List[Int], acc:List[Int]=Nil):List[Int] = {
    (l1, l2) match {
        case (Nil, _) => acc
        case (x::xs, _) =>
            buscarRepetidos(xs,l2, buscarRep(x,l2, acc))
    }
}

def buscarRep(x:Int, l:List[Int], acc:List[Int]):List[Int] = {
     match l {
         case Nil => acc
         case y :: ys =>
             if (y = x) acc :+ x
             else buscarRep(x, ys, acc)
     }
 }
l2.filter(x => l2.count(x) > 1)