2011-03-31 29 views
5

Actualmente estoy a la mitad de mi primer algoritmo y clase de estructuras de datos. Desafortunadamente, mi profesor no es muy bueno, y el libro en línea que usamos es increíblemente vago en sus descripciones (http://people.cs.vt.edu/~shaffer/Book/). Hasta ahora he logrado mantener una A, principalmente debido a la suerte y el sentido común, pero está empezando a ser mucho más difícil ahora que estamos tratando con géneros, búsquedas y estructuras de datos más avanzadas como gráficos.Algoritmos y estructuras de datos

Me preguntaba si hay algún recurso en línea que me ayude a aprender este tema mejor que usted lo recomendaría. Entiendo la gran importancia de conocer bien este tema, especialmente cuando escribo un código eficiente y también cuando me entrevisto para un trabajo, por lo que estoy abierto a cualquier sugerencia que me ayude a aprender y comprender mejor los algoritmos y las estructuras de datos.

+0

http://stackoverflow.com/questions/3665370/book-to-learn-advance-concepts-in-data-structures-and-algorithms Estos aren' t necesariamente para avanzado, ya sea – dfb

Respuesta

0

El mejor libro que he visto para el aprendizaje de algoritmos y datos de estructura es el MIT Introducción a Algoritmos. Es bueno para ti, independientemente de tu nivel, es bueno para principiantes, intermedios y avanzados.

1

Consígase Skiena's The Algorithm Design Manual. Es un libro increíble y realmente me ayudó a entender algoritmos y estructuras de datos.

2

Probablemente no le guste mi respuesta, pero espero que lo más productivo que pueda hacer sea trabajar en su actitud. A menudo encuentras lo que estás buscando. Por lo tanto, si está tratando a su instructor como infravalorado y su libro como inútil; obtendrás muy poco de eso. Si busca las fortalezas de su instructor y obtiene lo que puede del libro, llegará lejos. Eché un vistazo a tu texto y no me pareció tan vago. Definitivamente mira las referencias proporcionadas en otras respuestas, pero también sé positivo sobre la clase.

+3

La actitud segura puede ser un problema, pero el chico también podría tener un punto. Recuerdo mi primera estructura de datos y clase de algoritmos (que es un tema algo difícil de entender al principio). Mi maestra tenía un fuerte acento ruso y nos dio tareas que solía dar a los estudiantes de 4 a 5 años más avanzados en sus estudios de CS como nosotros. Fue doloroso. Aprendí de libros y compañeros ese semestre, no del maestro. –

+0

Definitivamente puedo ver tu punto. Normalmente no soy de los que culpan a mi profesor por la forma en que lo hago en la clase, pero es solo que este tema parece requerir una buena cantidad de explicaciones en profundidad, algo que mi profesor parece no hacer. Esto a menudo me deja confundido a mí mismo y a la mayoría del resto de la clase. – lessthanjacob

0

He encontrado las diapositivas ubicadas en: http://www.heppenstall.ca/academics/doc/242/ para ser muy útil. Cubren una amplia gama de estructuras de datos y algoritmos elementales e incluyen imágenes utilizables para ayudar a comprender lo que está sucediendo.

No tengo idea de quién creó las diferentes diapositivas o quién podría estar manteniendo la versión más reciente; parece que han llegado a muchos servidores escolares diferentes y están disponibles, al menos, en formatos PDF y PPT.

1

Personalmente, siempre he encontrado la mejor manera de aprender algo es tratar de construirlo. Ya sea un algoritmo y un nuevo patrón de diseño o una estructura de datos, el proceso de creación de esa cosa en código siempre ha sido la mejor forma en que he aprendido.

+0

¿Pero y si no tengo la experiencia de programación para hacer eso? Soy un estudiante de segundo año de Ciencias de la Computación con una buena comprensión de C++ y C. ¿Crees que todavía podría construir algunas de estas cosas? – lessthanjacob

+0

@SkankinJake ... mira mi enlace de arriba ... Pude leer ese libro sin dificultades después de solo un semestre de C++ ... y después de leerlo, pude escribir mis propias implementaciones de muchas de las Estructuras de datos STL sin mucha dificultad. No es que los míos fueran mejores que los STL (aún sugiero que los uses si los contenedores correctos están disponibles), pero solo diciendo: entenderás cómo funcionan. Sin embargo, el libro pone gran énfasis en las estructuras de datos en comparación con los algoritmos, por lo que puede que tenga que buscar otro material complementario para ese fin de las cosas. – Jason

+0

Me aseguraré de darle una lectura. Gracias. – lessthanjacob

2

Me gustó especialmente este libro: Data Structures with C++ Using STL por Ford y Topp.

Incluyen bastante código fuente (todo puede descargarse desde su sitio web) y le dan al lector una minuciosa implementación de muchas de las estructuras de datos implementadas en el STL, así como un par de estructuras de datos (como gráficos) que no están presentes en el STL. Obtendrá una buena comprensión de la composición interna de cada estructura de datos a partir de tipos de datos más básicos, así como una referencia lo suficientemente genérica que en caso de que necesite construir algo usted mismo, tendrá una muy buena idea de cómo exactamente estos las estructuras de datos se pueden crear y componer a partir de tipos de datos más simples (en un sentido genérico ... es decir, estas ideas se pueden transponer a cualquier otro idioma) y cómo se deben aplicar en entornos del mundo real.

No es tanto una referencia para el STL en sí, ya que es una referencia sobre cómo se implementaron las estructuras de datos en el STL (aunque en una forma más simplista ... no tendrá que preocuparse por los asignadores y muchos de los otros complementos del código STL que pueden dificultar la lectura y comprensión de un principiante).

Espero que esto ayude,

Jason

Cuestiones relacionadas