Divulgación completa: solo soy un estudiante de secundaria, pero he estado interesado en la informática durante muchos años y tengo un conocimiento bastante amplio de una amplia variedad de temas. Programa en variantes C, Java y Python con algo de experiencia en desarrollo web.
Esta pregunta es muy vaga y tiene muchos factores que pueden jugar en ella. Primero, definiré un algoritmo como una solución paso a paso a un problema. Si desea hacer un sándwich, debe dividir el proceso en pasos tan fundamentales que nadie pueda estropearlo (por ejemplo, abra la bolsa de pan, tome dos hojas de pan, retire una pieza de la otra, etc. )
Tipo de algoritmo: hay muchos tipos de algoritmos necesarios para infinitos problemas. Probablemente el tipo de algoritmo más primitivo es la lógica booleana . Ingrese datos y obtenga una respuesta de sí o no. Estos pueden ser extremadamente simples o muy complejos, pero no importa cuán complejo pueda escribirse técnicamente en una sola declaración. Los algoritmos de clasificación son otro algoritmo elemental que se enseña en la educación temprana de la programación. Se ingresa una lista de algún tipo y la salida es una lista ordenada de algún tipo. Algunos ejemplos simples incluyen orden alfabético o numérico. Existen algoritmos comúnmente aceptados y utilizados para esto, como la búsqueda binaria, y la mayoría de los casos se pueden completar con facilidad en minutos. En el extremo opuesto del espectro tiene algoritmos de aprendizaje automático que pueden volverse extremadamente complejos debido al uso de cálculo y funciones matemáticas. Esto puede llevar horas o días si se hace a mano, pero hay API hechas para ayudar en este proceso.
- ¿Alguna vez ha enviado un artículo científico sobre un algoritmo que funciona tan bien como los métodos más modernos pero realmente no sabe por qué? ¿Puedes decir 'tal vez' al explicar tu método?
- Dado un gráfico ponderado de N nodos, ¿existe un algoritmo que calcule la ruta más corta entre todos los nodos?
- Ahora he leído sobre algoritmos y estructuras de datos como Al Klein me dijo. ¿Qué lenguaje de programación debo aprender?
- En el algoritmo O (n) para encontrar el elemento máximo en una matriz, ¿cuál es el valor esperado del número total de cambios en el valor de una variable que mantiene el máximo sobre el paso de una matriz?
- ¿Cuáles son las aplicaciones de la vida real del algoritmo de Prim?
Cuánta experiencia: si acaba de comenzar, la comprensión e implementación de un algoritmo depende del conocimiento general, pero a medida que aprende más y más, comienza a aprender patrones para ayudarlo en un proceso más rápido o incluso aprende el código exacto de ciertos algoritmos (ej. El tipo de búsqueda binaria mencionado anteriormente).
Otros factores: el tiempo que lleva desarrollar un algoritmo se basa en más factores, como la plataforma para la que se está desarrollando. Si está escribiendo un script en Python, sería mucho más simple que si estuviera utilizando una computadora de ADN experimental, simplemente por la cantidad de detalles que tiene que describir. En los idiomas de nivel superior, podría decir num = 4 para establecer la variable num en un valor de 4. En el otro extremo del espectro, tendría que encontrar espacio en la memoria, asignar ese espacio, escribir el valor 4 en ese espacio. etc.
En resumen, esta pregunta es extremadamente difícil de responder en un valor numérico específico. Si tiene un algoritmo específico en mente, puede comentarlo y le haré saber lo mejor que pueda cuánto tiempo tardaría en desarrollarse.