Gracias por el A2A, William! Para ser sincero, nunca lo había pensado de esa manera, pero veamos ese concepto y veamos a dónde nos lleva.
Típicamente, una estructura de datos es una construcción para almacenar información de una manera que nos ayuda a realizar tareas. Un algoritmo es una serie de tareas para lograr un resultado, o nos ayuda con una tarea. Parece que un algoritmo es una estructura de datos para obtener instrucciones sobre cómo completar una tarea.
No es exactamente lo que postulamos …
- Dado un gráfico bipartito, ¿cómo puedo encontrar su subgrafo que es un gráfico bipartito completo y tiene la mayor cantidad de vértices?
- ¿Cuáles son los buenos algoritmos de similitud y métricas para textos cortos (menos de 50 palabras)?
- ¿Es Pegasos un buen algoritmo para SVM no lineal?
- Cómo saber si un algoritmo es [matemática] O (n) [/ matemática], [matemática] O (2n) [/ matemática] o [matemática] O (n ^ 2) [/ matemática]
- ¿Cómo funciona la detección de vandalismo de Wikipedia?
Ok, nueva dirección! Veamos un caso simple y veamos si podemos extrapolar nuestra hipótesis.
La lista respaldada por matrices. Almacena elementos en una matriz contigua para acceso aleatorio (independiente del elemento). Eso podría considerarse un algoritmo … pero ¿qué pasa con otras cosas que son únicas al respecto? La Lista puede expandirse para contener nuevos elementos que se agregan (algoritmo / paso para agregar, hacer crecer la matriz). Insertar, buscar, eliminar … todos los algoritmos / pasos.
Yo diría que una estructura de datos es un grupo / colección de algoritmos en un conjunto de datos que produce un conjunto consistente de resultados.
También diría que un algoritmo es un grupo / colección de instrucciones en un conjunto de datos que produce un conjunto consistente de resultados.
Presento una conjetura diferente: los algoritmos y las estructuras de datos, como se definió anteriormente, son en realidad la misma construcción abstracta, pero tienen implementaciones concretas diferentes.
¡Espero que haya sido útil! ¡Gracias por la nueva visión!
¡Buena suerte!
PD: Después de pensar un poco más … en C #, si tiene un conjunto enumerable, puede llamar a ToList () y convertir ese seto en una lista. ¿No es ese un ‘algoritmo’ cuyo resultado es una ‘estructura de datos’? ¡Lo reflexionaré con más detalle!