tenia un par de dudas con este ejercicio, el enunciado es:
2. La moda de una secuencia de números es el valor que se repite con mayor frecuencia en la secuencia. Escribir un algoritmo O(N log N) para calcular la moda de una secuencia. Justificar el orden.
lo unico que se me ocurrio es ordenar el vector con merge sort que es O (n log n) y una vez ordenado recorrerlo linealmente e ir guardando cual numero se repetio la mayor cantidad de veces, pero dudo que este bien.
trate de plantearlo por dividir y conquistar pero no encontre forma de hacerlo ya que no veo la forma de dividirlo en subproblemas, y no se me ocurrio ninguna otra manera de encararlo.
Por dividir y conquista si es que puede sacarse no creo que salga fácil ni un poquito, así que no te quemes el bocho.
Para mí lo que hiciste está bien; te pedían un orden y tu algoritmo lo resuelve en ese orden (con la desventaja de usar un O(n) en memoria porque por prolijidad deberías duplicar el vector para no romperlo).
También hubieras cumplido con el orden si hacías algo más eficiente onda un hash con el número como clave y la cantidad de apariciones como valor. Cargás el hash en una pasada, y en una pasada por el hash encontrás la clave con más ocurrencias. Orden total O(n).
Ver tema siguiente Ver tema anterior Podés publicar nuevos temas en este foro No podés responder a temas en este foro No podés editar tus mensajes en este foro No podés borrar tus mensajes en este foro No podés votar en encuestas en este foro No Podéspostear archivos en este foro No Podés bajar archivos de este foro
Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker 365 Attacks blocked.