¿La mayoría de los algoritmos fundamentales provienen de la academia o la industria?

La mayoría de los algoritmos fundamentales provienen de la historia. Claro que en una clase de programación básica pueden hacer que escriba una implementación de tipo burbuja o similar. Esa es probablemente la última vez que tendrá que escribir su propio algoritmo de clasificación. Los que están disponibles en sus bibliotecas estándar fueron diseñados por alguien hace más de 20 años y es probable que sean más eficientes que cualquier cosa que se le ocurra.

Con más de 60 años de desarrollo informático, la mayoría de los algoritmos fundamentales se han desarrollado hace mucho tiempo. En los años 80 tenía un programa que tenía que clasificar una gran cantidad de datos en memoria limitada. Se me ocurrió una forma de dividir los datos en varios archivos, y una forma de fusionar dos archivos en un tercer archivo. Repita hasta que todo esté bien ordenado en un solo archivo. No fue hasta más tarde que me di cuenta de que había reinventado algo llamado “The Three Tape Merge”.

En los días en que C era rey, había que reinventar mucho la rueda. En la era moderna de .NET, Java, Python, código abierto y Google, hay tantas opciones disponibles para su uso que alguien más ya ha desarrollado. Ya no necesita escribir sus propias funciones de cadena, lista u orden, por ejemplo. Tengo viejas bibliotecas que he escrito que hacen eso porque no tenía nada más disponible libremente. Ahora puedo concentrarme en el código que es único para lo que necesito que haga en lugar de preocuparme por los fundamentos.

Depende de su idea de las fuentes verdaderas. ¿Puedo sugerir una inversión en lo siguiente: El arte de la programación de computadoras, por Knuth

PD. La respuesta es bastante, ¡AMBOS!