2010-02-20 14 views
52

¿Me puede recomendar un libro o (¡mejor!) Un sitio con muchos problemas difíciles y ejercicios sobre estructuras de datos?Algoritmos de aprendizaje y estructuras de datos Fundamentos

Ya estoy respondiendo las preguntas del proyecto Euler, pero estas preguntas son interesantes, pero los algoritmos son poco comunes. Apenas usé un árbol simple. Tal vez hay un sitio con ejercicios como: hey, necesitas calcular esto: .... Hazlo usando un árbol. Ahora hazlo usando una cremallera. Suba su solución C (Haskell, Lisp, incluso Pascal o Fortress go). ¡Oh, tu solución es tan lenta!

La autoeducación es muy difícil, entonces usted intenta aprender muy cosas fundamentales,. ¿Cómo puedo ayudarme con ellos sin asistir a cursos o lo que sea?

+0

que he encontrado para ser en realidad bastante bueno en este sentido. No realmente con ejercicios, pero con ejemplos y pseudocódigo. – falstro

+0

Creo que es como aprender un idioma [humano] usando un diccionario. ¡Pero wikipedia me ayuda mucho, por supuesto! –

+2

Otro recurso de wiki: http://www.algorithmist.com/index.php/Main_Page –

Respuesta

22

Introduction to Algorithms, Third Edition, by Cormen, Leiserson, Rivest and Stein es una buena introducción a los algoritmos y las estructuras de datos. Tiene muchos ejercicios al final de cada capítulo. la mayoría de ellos son simples, pero hay algunos más difíciles.

+0

¡oh, gracias! Incluso encontré este curso en iTunes U :) –

+1

¡El clásico! Los libros de Knuth también son buenos, pero suelo encontrar CLRS menos detallado y más profundo en algunos lugares. –

+1

raviv qué lenguaje de programación están utilizando en la edición 3 del libro CLRS. gracias de antemano – obo

0

Un buen libro de texto con ejercicios al final parece ser el mejor camino a seguir.

+0

¿Puedes nombrar uno? :) –

+1

He utilizado el 'manual de diseño de algoritmos' de CLRS y skiena. – Pranav

18

Video conferencias por Programa Nacional de Aprendizaje Mejorado de Tecnología (NPTel) en NPTEL Youtube channel. Estos están siendo llevados a cabo por siete IIT e IISc Bangalore de la India y financiados por MHRD, Gobierno de la India.

Muchos más engineering lectures.

+0

¡¡Muchas gracias !!! ¿Hay algún ejercicio para estas conferencias? –

+0

Ese es un gran canal de hecho. Gracias por compartir. – VVV

+0

Prefiero usar ClipMine para obtener video conferencias con etiquetas. https://www.clip.mn/search/?q=%23nptelhrd+algorithms&search_type=clipmine –

9

Este tiene es un duplicado.

Recomendaría el sitio de cursos abiertos MIT here. Hay cursos de algoritmos en la sección "Ingeniería eléctrica e informática" en algún punto de la página.

6.006 - Introduction to Algorithms 
6.046J - Introduction to Algorithms (SMA 5503) 

Lo recomiendo. Los materiales están en el sitio. Es probable que se acceda a los videos desde YouTube here - busque "mit algorithms". El textbook es muy respetado. La tercera edición acaba de salir, la segunda edición coincide con el curso. La primera edición también se incluyó como parte de Dr Dobbs Algorithms and Data Structures CD ROM.

Niklaus Wirth tiene un libro de Algoritmos y Estructuras de Datos disponible para descargar de su personal site. Tengo la versión impresa de Modula 2, y aunque no es un sustituto de Cormen (o aho hopcroft ullman, etc.) es un buen libro para tener.

3

Además de los ya mencionados Cormen, Leiserson y Rivest, también hay un libro muy nuevo de Peter Brass, "Advanced Data Structures". Tiene un código de ejemplo relativamente feo en C, y el autor es algo fanático sobre el rendimiento (por ejemplo, no usa recursividad), pero el contenido teórico de ese libro es brillante y único, apenas se cruza con Cormen. Espero que se convierta en un clásico.

+0

gracias! muy interesante –

0

adicional al libro muy bueno texto Introducción a los algoritmos, tercera edición, por Cormen, Leiserson, Rivest y Stein, recomiendo altamente para ver la línea disponibles videos de conferencias impartidas por Leiserson en el MIT.Si usted tiene el libro y las conferencias, es como si estuviera estudiando en el MIT ;-)

http://videolectures.net/mit6046jf05_introduction_algorithms/

14

libro electrónico gratuito impresionante - «Data Structures and Algorithms». Contiene la implementación de los algoritmos comunes en pseudocódigo y en una forma explícita. Además, esquemas y gráficos bastante agradables e inteligibles.

Incluso Jon Skeet mentioned that en su blog. :-)

Además, este es un libro de menos de 100 páginas (como sabrá, muchos programadores don't read some books).

+0

No creo que este libro haya pasado la primera edición, hay algunos errores (por ejemplo, http://stackoverflow.com/questions/11379467/how-does-this-bst-node-deletion-algorithm-work) pero es corto y gratis. – Ben

1

Si desea una alternativa esclarecedora para los algoritmos de aprendizaje siempre puede intentar: Rabhi F., Lapalme G. Algorithms.. a functional programming approach.

Los autores rechazan más métodos tradicionales de enseñanza de algoritmos por utilizando una programación funcional contexto, con Haskell como el idioma aplicación. Esto lleva a programas más pequeños, más claros y más elegantes que permiten al programador comprender el algoritmo en sí más rápido y usar ese entendimiento para explorar soluciones alternativas . Poniendo énfasis en el desarrollo del programa en lugar de los propiedades matemáticas de los algoritmos, el libro utiliza una sucesión de ejemplos prácticos de programación para desarrollar en el lector de resolución de problemas habilidades que pueden ser fácilmente transferidos a otra paradigms.to idioma otros paradigmas del lenguaje.

En cuanto a un sitio con ejercicios (duros) que siempre se puede tratar de resolver, lo recomiendo: spoj.

2

http://www.youtube.com/watch?v=QMV45tHCYNI

CS 61B: Estructuras de Datos - Otoño 2006

instructor: Jonathan Shewchuk

estructuras fundamentales de datos dinámicos, incluyendo listas lineales, colas, árboles y otras estructuras vinculadas; series de arreglos y tablas hash. Administración de almacenamiento. principios elementales de la ingeniería de software. Tipos de datos abstractos. Algoritmos de ordenación y búsqueda. Introducción al lenguaje de programación Java.

También se puede leer este libro de Algoritmos .. Wikipedia

http://www.amazon.com/Data-Structures-Algorithms-Made-Easy/dp/1466304162

Cuestiones relacionadas