¿Cuáles son los recursos más fáciles de aprender para aprender sobre algoritmos?

Recursos en línea :

  • CS 97SI: Introducción a los Concursos de Programación Competitiva
  • http://www.topcoder.com/tc?modul…
  • http: //openclassroom.stanford.ed…
  • http://courses.csail.mit.edu/6.0…
  • http://news.ycombinator.com/item…
  • prakhar1989 / awesome-courses
  • http://algorithms.openmymind.net/
  • http://www.cs.uiuc.edu/~jeffe/te…
  • http://blog.palantir.com/2011/09…
  • http://www.strchr.com/links
  • http://www.cs.sunysb.edu/~skiena…
  • http://cslibrary.stanford.edu/
  • http://www.samba.org/~tridge/phd…

Libros de texto introductorios:

  • Lafore, estructuras de datos y algoritmos en Java: http://www.amazon.com/Data-Struc…
  • Harris & Ross, Beginning Algorithms: http://www.amazon.com/Beginning-…
  • Esquema de las estructuras de datos de Schaum con C ++: http://www.amazon.com/Schaums-Ou…
  • Los algoritmos de Sedgewick en C: http://www.amazon.com/Algorithms…
  • Dasgupta , Papadimitriou & Vazirani, Algorithms: http://www.cs.berkeley.edu/~vazi…
  • Skiena, el manual de diseño de algoritmos: http://www.amazon.com/Algorithm-…
  • Heineman, Algoritmos en pocas palabras: http://www.amazon.com/Algorithms…
  • Knuth: http://www.amazon.com/s/ref=nb_s… (es broma)
  • Diseño de algoritmo por Klienber, Tardos – http://www.amazon.com/Algorithm-…

Manuales

  • CLRS: http://www.amazon.com/Introducti…
  • Samet, Fundamentos de estructuras de datos métricos y multidimensionales, ISBN 0123694469, http: //www.amazon.com/Foundation …

Otro

  • ¿Cómo aprendo a codificar?
  • Bentley, Perlas de programación: http://www.amazon.com/Programmin…
  • Clever Algorithms de Jason Brownlee en Ruby: http://www.cleveralgorithms.com/…
  • ¿Cuál es el mejor libro de texto para estructuras de datos y algoritmos?
  • ¿Cuáles son algunos problemas de juguetes buenos (se pueden hacer durante un fin de semana con un solo programador) en ciencia de datos? Estoy estudiando el aprendizaje automático y las estadísticas, y estoy buscando algo socialmente relevante utilizando conjuntos de datos / API disponibles públicamente.
  • ¿Cuáles son los mejores blogs de programación?
  • ¿Cuáles son algunos de los grandes libros de algoritmos generales que no sean Knuth, CLRS o Sedgewick?
  • http://news.ycombinator.com/item…
  • http://research.swtch.com/
  • http://stackoverflow.com/questio…
  • http://code.google.com/codejam
  • http://icpc.baylor.edu/
  • http://inst.eecs.berkeley.edu/~c…
  • http://software-carpentry.org/
  • Cursos avanzados de CS: http://the-paper-trail.org/blog/…
  • Cracking the Coding Interview: http://www.amazon.com/Cracking-C… por Gayle Laakmann McDowell
  • comunitate informatica, concursuri de programare por Cosmin Negruseri
  • Problemas de algoritmos para los maniquíes: el blog de Petr Mitrichev
  • Problemas de Topcoder archivados: Estadísticas de TopCoder
  • Preguntas de la entrevista: GeeksforGeeks – Un portal informático para geeks.
  • Codechef: concurso de programación, concurso de programación, programación de computadoras en línea

Tutoriales de Topcoder, seguro.
He hecho una versión en pdf de los tutoriales de Topcoder. Puedes descargarlos todos desde este enlace:
tutoriales topcoder

Aprendes los algoritmos haciéndolos . Así que encuentre un recurso que proporcione problemas de algoritmos y orientación para resolverlos. Si desea un libro de texto, consulte el Manual de diseño de algoritmos, que también tiene un repositorio de algoritmos en línea. Si prefieres un curso en línea, Udacity ofrece un curso de algoritmos basado en python, mientras que Coursera ofrece cursos generales y basados ​​en Java.

Dado que la parte importante es la práctica de algoritmos, puede omitir los cursos de video y simplemente resolver desafíos. Es genial si tiene un recurso que proporciona desafíos de algoritmos y ayuda para resolverlos. Creé Learneroo para este propósito. Puede explorar los algoritmos en Learneroo o comenzar a aprender el Tutorial de Recursión .

* Hola, soy parte del equipo de Marketing y Comunicación en HackerEarth.

HackerEarth es un centro de programadores de todo el mundo. Para ayudar a las personas a aprender a programar, tenemos una estructura de curso llamada CodeMonk. Tenemos la intención de hacer que la Programación de Aprendizaje sea lo más atractiva y efectiva posible.

Aquí está el Porqué Code Monk es un gran lugar para aprender Programación:

  1. Enfoque estructurado : la mayoría de los artículos o fuentes que obtenemos en google no tienen un contenido estructurado claro donde podamos hacer un seguimiento de nuestro progreso. El curso comienza a partir de los conceptos básicos del algoritmo y pasa gradualmente a conceptos de programación más complicados.
  2. Aprender haciendo: a cada tema también le seguirá un breve desafío de programación para ayudarlo a evaluar su comprensión de los conceptos tratados en el tema. Y hay editoriales y otras notas.

Lo lanzamos en 2015 y tuvimos más de 14K participantes de todo el mundo. Los desafíos de HackerEarth que se llevan a cabo todos los meses te ayudarán a obtener un mejor dominio del dominio.

  • Fácil – Retos fáciles y simples, ideal para principiantes.
  • Choque : desafío de nivel intermedio de 24 horas de duración, con problemas que van desde el nivel medio al difícil.
  • Circuitos : un desafío de 8 días que tiene una combinación de desafíos de programación fáciles, medios y difíciles.

Estos desafíos lo ayudan a poner sus habilidades a prueba contra programadores competitivos de todo el mundo, lo que lo ayuda a mejorar sus habilidades de programación.

Recursos en línea :
Vale la pena mirar la iniciativa edu de Google Code : http://code.google.com/edu/algor … Debo admitir que no lo he usado, ya que prefiero los libros en lugar del material en línea.

Pero nada supera a http://sorting-algorithms.com de David Martin

Aparte de eso, siempre tienes gente útil en Wikipedia en la que puedes confiar :
http://en.wikipedia.org/wiki/Sor
http://en.wikipedia.org/wiki/Lis… **
http://en.wikipedia.org/wiki/Lis

Y la comunidad StackOverflow ha desarrollado una buena colección de algoritmos de preguntas y respuestas a lo largo de los años:
http://stackoverflow.com/search?…

(El artículo de Wikipedia sobre Hash Tables está muy bien escrito y es un buen texto introductorio sobre el tema. Sin embargo, para una comprensión mucho más completa, necesitaría comprar libros: Mis sugerencias a continuación).

Actualización :
Busqué en mis marcadores y desenterré estas gemas:
Algoritmista: http://www.algorithmist.com/inde
Un libro gratuito de algoritmos avanzados: http://www.cs.berkeley.edu/~vazi

—————————————————————–
Libros
Creo que el mejor libro del mercado en lo que se refiere a los algoritmos es el CLRS: Introducción a los algoritmos [1]. Definitivamente deberías intentarlo.

Comencé aprendiendo / implementando algoritmos en C primero, luego pasé a Java hace unos años, y uso Java hasta la fecha, ya que tiene mejor control de errores, gestión de memoria automatizada y es casi tan rápido como C, y definitivamente más rápido que Python, PHP y similares. Si me preguntas, deberías comenzar con C también. Le ayudará a desarrollar sus habilidades de programación y le ayudará a comprender mejor las estructuras de datos [*].

Recogí los algoritmos de Robert Lafore en Java [2], que es un texto muy básico sobre algoritmos. Encontré que el trabajo de Robert Sedgewick [3] [4] es más interesante y desafiante de leer.

Si estás buscando un libro de C ++, puedo decirte que la mayoría de los chicos de Uni preferían a Adam Drozdek [5] y a Mark Allen Weiss [6] (en ese orden). De hecho, he visto a muchos entrevistadores hacer preguntas del libro de Mark.

[*] http://www.amazon.com/Algorithms…
[1] http://www.amazon.com/Introducti
[2] http://www.amazon.com/Data-Struc
[3] http://www.amazon.com/Bundle-Alg
[4] http://www.amazon.com/Algorithms
[5] http://www.amazon.com/Data-Struc
[6] http://www.amazon.com/Data-Struc

Los mejores libros de algoritmos :

  • Partes internas de Windows, Parte 1: Arquitectura del sistema, procesos, subprocesos, administración de memoria y más (7ª edición)
    La guía definitiva, totalmente actualizada para Windows 10 y Windows Server 2016 Profundice dentro de la arquitectura y los elementos internos de Windows, y vea cómo funcionan los componentes principales entre bastidores. Liderada por un equipo de expertos internos, esta guía clásica se ha actualizado completamente para Windows 10 y Windows Server 2016. Este libro le ayudará a: · Entender la arquitectura del sistema de Windows y sus entidades más importantes, como procesos e hilos · Examinar cómo los procesos administre los recursos y los subprocesos programados para su ejecución dentro de los procesos · Observe cómo Windows administra la memoria virtual y física · Investigue en el sistema de E / S de Windows y vea cómo funcionan los controladores de dispositivos e intégrelos con el resto del sistema · Vaya al modelo de seguridad de Windows para ver cómo gestiona el acceso, la auditoría y la autorización, y sobre los nuevos mecanismos en Windows 10 y Server 2016.
  • Java 9 Programación Por Ejemplo
    Aprenderá las nuevas características de Java 9 rápidamente y experimentará un enfoque simple y poderoso para el desarrollo de software. Podrá usar las herramientas de tiempo de ejecución de Java, comprender el entorno Java y crear programas Java. 0, este libro lo guiará para que se emplee como un desarrollador Java de primer nivel.
  • Probabilidad y computación: aleatorización y técnicas probabilísticas en algoritmos y análisis de datos
    Los capítulos y secciones recién agregados cubren temas que incluyen distribuciones normales, complejidad de muestra, dimensión de VC, complejidad de Rademacher, leyes de poder y distribuciones relacionadas, hash de cuco y el lema local de Lovasz. El material relevante para el aprendizaje automático y el análisis de grandes datos permite a los estudiantes aprender técnicas y aplicaciones modernas. Entre los muchos ejercicios y ejemplos nuevos se encuentran ejercicios relacionados con la programación que brindan a los estudiantes una capacitación excelente para resolver problemas relevantes.
  • Analítica avanzada con chispa: patrones para aprender de datos a escala
    En la segunda edición de este libro práctico, cuatro científicos de datos de Cloudera presentan un conjunto de patrones autocontenidos para realizar análisis de datos a gran escala con Spark. Actualizado para Spark 2. Con este libro, usted se familiarizará con el modelo de programación de Spark. Se sentirá cómodo dentro del ecosistema de Spark. Aprenderá enfoques generales en ciencia de datos. Examine implementaciones completas que analicen grandes conjuntos de datos públicos. Descubra qué herramientas de aprendizaje automático tienen sentido para problemas particulares. Código que puede adaptarse a muchos usos.
  • Java 9 Estructuras de datos y algoritmos
    Características principales Este libro proporciona una cobertura completa de las estructuras de datos reactivas y funcionales. Basado en la última versión de Java 9, ilustra el impacto de las nuevas características en las estructuras de datos. Obtenga exposición a conceptos importantes como la notación Big-O y el libro de programación dinámica. Descripción Java 9 Las estructuras de datos y los algoritmos cubrirán las estructuras de datos clásicas, funcionales y reactivas, brindándole la capacidad de comprender la complejidad computacional, resolver problemas y escribir código eficiente. Comenzamos con los conceptos básicos de algoritmos y estructuras de datos, ayudándole a comprender los fundamentos y medir la complejidad. Lo que aprenderá Comprenda los fundamentos de los algoritmos, las estructuras de datos y la medición de la complejidad Averigüe qué son las estructuras de datos de propósito general, incluidas las matrices, las listas vinculadas, las listas vinculadas de doble extremo y las listas circulares. Conozca los conceptos básicos de los tipos de datos abstractos. -tienda, cola y cola de doble cola. Vea cómo usar las funciones recursivas y la inmutabilidad al mismo tiempo que entiende y en términos de recursión. Maneje la programación reactiva y sus estructuras de datos relacionadas. Utilice la búsqueda binaria, la clasificación y la clasificación eficiente. concepto de árboles y lista de todos los nodos del árbol, recorrido del árbol, árboles de búsqueda y árboles de búsqueda equilibrados Aplique estructuras de datos de propósito general avanzadas, clasificación basada en colas de prioridad y listas enlazadas inmutables de acceso aleatorio Obtenga una mejor comprensión del concepto de gráficos , gráficos dirigidos y no dirigidos, árboles no dirigidos y mucho más.
  • Diagnóstico algorítmico de síntomas y signos
    ”Evalúe efectivamente más condiciones a través de nuevos algoritmos para diversos síntomas y pruebas de laboratorio, incluidos algoritmos que representan enfermedades que son síntomas de otras enfermedades. Reconocer las alternativas de diagnóstico de un vistazo gracias a las tablas de diagnóstico diferencial. La compra de su libro incluye una descarga gratuita del libro electrónico mejorado para iOS, Android, PC y Mac.
  • Libro de cocina práctico de aprendizaje a máquina
    El desafío en el mundo actual es la explosión de datos a partir de datos heredados existentes y nuevos datos entrantes estructurados y no estructurados. Este libro de cocina le ayudará a resolver los desafíos diarios que enfrenta como científico de datos. La aplicación de varias técnicas de ciencia de datos y en múltiples conjuntos de datos basados ​​en los desafíos del mundo real que usted enfrenta le ayudará a apreciar una variedad de técnicas utilizadas en diversas situaciones.
  • Conjuntos y gráficas: Perspectivas sobre lógica y combinatoria
    Este tratado presenta una perspectiva integrada sobre la interacción de la teoría de conjuntos y la teoría de gráficos, proporcionando una amplia selección de ejemplos que resaltan cómo los métodos de una teoría pueden usarse para resolver mejor los problemas originados en la otra. Características: explora las interrelaciones entre conjuntos y gráficos y sus aplicaciones a la combinatoria finita; introduce las nociones teóricas y gráficas fundamentales desde el punto de vista tanto de la teoría de conjuntos como de la lógica diádica, y presenta una discusión sobre los universos de conjunto; explica cómo los conjuntos pueden modelar gráficamente convenientemente, analizar los gráficos de conjuntos y las representaciones teóricas de conjuntos de gráficos sin garras; investiga cuándo es conveniente representar conjuntos mediante gráficos, cubriendo los problemas de conteo y codificación, la generación aleatoria de conjuntos y el análisis de conjuntos infinitos; presenta extractos de pruebas formales sobre gráficos, cuya exactitud se verificó mediante un asistente de pruebas automatizado; Contiene numerosos ejercicios, ejemplos, definiciones, problemas y paneles de insight.
  • Once Upon a Algorithm: Cómo explican las historias la computación (MIT Press)
    En Once Upon a Algorithm, Martin Erwig explica la computación como algo que ocurre más allá de las computadoras electrónicas, y la informática como el estudio de la resolución sistemática de problemas. Erwig señala que muchas actividades diarias implican la resolución de problemas. Esta simple rutina diaria resuelve un problema recurrente a través de una serie de pasos bien definidos.
  • Innovaciones en Ciencias de la Computación e Ingeniería: Actas del Cuarto ICICSE 2016 (Notas de la Conferencia en Redes y Sistemas)
    El libro es una colección de documentos de investigación revisados ​​por pares de alta calidad presentados en la Cuarta Conferencia Internacional sobre Innovaciones en Informática e Ingeniería (ICICSE 2016) celebrada en Guru Nanak Institutions, Hyderabad, India, del 22 al 23 de julio de 2016. El libro trata Una amplia variedad de aplicaciones industriales, de ingeniería y científicas de las técnicas emergentes. Los investigadores académicos y de la industria presentan su trabajo original e intercambian ideas, información, técnicas y aplicaciones en el campo de la ciencia de datos y análisis, inteligencia artificial y sistemas expertos, movilidad, computación en la nube, seguridad de redes y tecnologías emergentes.

Hay muchos recursos como libros, videos y cursos en línea para aprender algoritmos. Depende de tus intereses. Personalmente, me gusta ver videos y luego probar los problemas yo mismo. No soy un gran fanático de los libros. Sin embargo, te recomendaré algunos grandes recursos:

Libros:

Introducción a los algoritmos, 3ª edición (MIT Press): Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: 9780262033848: Amazon.com: Libros

The Art of Computer Programming, Volúmenes 1-4A Boxed Set: 9780321751041: Computer Science Books @ Amazon.com

Cursos online:

Algoritmos, 4ª Edición

http://coursera.org/

Udacity

Materiales del curso en línea gratis

Stanford en línea

Los siguientes sitios web son para programación competitiva.

Tutoriales de algoritmos

Codeforces

Concurso de Programación, Concurso de Programación, Programación Informática Online.

Espero que mi respuesta ayude.

Gracias A2A

Primero comienza con algunos recursos donde puedes aprender algoritmos:

  • Los preferidos son, debido a la reputación de la Universidad de Stanford y el mentor que ofrece la conferencia es extremadamente bueno y aprende cualquiera de los conceptos con facilidad:
    1. Algoritmos: Diseño y Análisis, Parte 1
    2. Algoritmos: Diseño y Análisis, Parte 2
    • Otros buenos recursos son:
      1. Estructura de datos y algoritmo de especialización.
      2. Algoritmo

      Ahora la otra parte, desde donde puedes practicar:

      1. Personalmente, se encontró un recurso muy bueno, para la práctica en problemas de dominio específico: HackerRank | Challanges
      2. Spoj
      3. CodeChef

      Por lo tanto, mis consejos para que tome un curso regularmente y lo que aprenda en ese curso, use ese concepto para enviar soluciones y si desea practicar más para cualquier tema, use HackerRank y este es el proceso que estoy siguiendo.

      Nota: No se preocupe por detener la programación solo porque encontró que estas cosas son demasiado complejas para entenderme y creerme todos y cada uno de los algoritmos que se analizan en este curso requiere mucho tiempo para comprenderlos lo suficientemente bien

      El mejor lugar para comenzar – Videos de conferencias | Introducción a los algoritmos | Ingeniería Eléctrica y Ciencias de la Computación | MIT OpenCourseWare

      Luego lee lo siguiente

      • Tutoriales de algoritmos
      • Introducción a los algoritmos | La prensa del MIT
      • El manual de diseño de algoritmos

      y si tienes algo de tiempo, toma cualquiera de los algoritmos y cursos de estructuras de datos de cualquier universidad y comienza a participar en competencias de programación como topcoder.

      GRATIS:

      • GeeksforGeeks | Un portal informático para geeks.
      • Tecnologías de Ritambhara – Preparación de entrevistas de codificación (Este es mi blog personal)
      • HackerRank
      • Codechef, HackerEarth, HiredIntech, CodeJam y muchas de estas plataformas

      PAGADO:

      • Cursos en Lynda.com, PluralSight, Courseera
      • Curso especializado en Codificación de la preparación de entrevistas: Big-O

      Si aprendes mejor visualizando, esto definitivamente te ayudará
      Visualización de estructuras de datos y algoritmos a través de la animación.

      Gracias A2A.

      Todavía soy un novato en algoritmos. Pero creo que puedo escribir esta respuesta. La estrategia que estoy usando es la siguiente.
      Leí la estructura de datos básica y los algoritmos de CLRS. Algunos de los temas que debo leer que encontré son importantes para la programación de computadoras son (que uno debe conocer para los algoritmos):
      1) Divide y conquista los algoritmos.
      2) algoritmos de clasificación. (ordenamiento rápido, ordenamiento por fusión, ordenamiento por montón, etc.)
      3) Estructura de datos básica (pila, colas, lista enlazada, árboles de búsqueda binarios, hash)
      4) Programación dinámica.
      5) Algoritmos codiciosos.
      6) Algoritmos de grafos. (Implementación del gráfico usando la lista de adyacencia y aplicando algoritmos como Dijkstra en eso).
      7) Coincidencia de cadenas (KMP, Trie, etc.).

      (No los estudies exhaustivamente porque perderás el interés, espero que a Thomas Cormen no le importe que: P)
      Después de leer estos temas, solo tendrá una idea de cómo funcionan estos algoritmos. Ahora, puede pasar a la programación competitiva y luego aplicar estos algoritmos. Participa en los concursos. (Por lo general participo en el concurso largo de Codeforces y Codechef) y he encontrado que correr después de varios jueces en línea no ayudaría mucho. Le permitirá resolver algunas preguntas básicas, pero luego no podrá resolver mucho. Más bien participar en un concurso. Si puede resolver algunas preguntas, lea la publicación de cada problema. (Si hay 5 problemas, entonces trate de resolver al menos 3 de ellos (ya sea en un concurso o fuera de él), eso es lo que normalmente hago. Le dije que soy un principiante.: P). Creo que eso es todo. Espero mejorar y yo también. 😛

      PD: Leí esta respuesta del usuario en cuestión: ¿Cuál es la peor manera de aprender Programación de computadoras? Respondió: “Leer muchos libros y no tocar el teclado”. y creo que la programación competitiva es una buena manera de practicar lo que has aprendido.

      PPS Do Codechef concursos largos para aprender y los concursos de Codeforces para saber cuánto has aprendido .

      Si alguien piensa que esta no es una buena manera, entonces dime alguna otra manera. 😛

      Mira estas conferencias (todas de 61B)

      Hacer problemas difíciles om leetcode y la Copa de la carrera. El estudio de este curso de algoritmos avanzados no hará daño a ninguno de los dos:

      Desecharía mi naturaleza académica si no incluyera el famoso libro CLRS Introducción a los algoritmos | La prensa del MIT

      Le sugiero que si conoce la programación básica, para comenzar con 61B, continúe con los temas más avanzados.

      • Tutorial de estructuras de datos y algoritmos: el mejor lugar para leer e implementar todo el algoritmo importante de topcoder, geeks para geeks y codechef. Una unión compilada de todas las cosas importantes de topcoder, geeks para geeks y codechef.
      • Concurso de programación, concurso de programación, programación de computadora en línea – CodeChef Programmers Cometition Arena
      • geeksforgeeks.org – Foro de aprendizaje y discusión
      • topcoder – Plataforma de aprendizaje e implementación
      • Sphere Online Judge (SPOJ) – Resolviendo rompecabezas
      • Desbordamiento de pila: resolver problemas y obtener ayuda
      • HackerEarth – Desafíos de programación y trabajos de desarrollador – Competencia y trabajos
      • CS 97SI: Introducción a los Concursos de Programación Competitiva – Competencia en el Mundo Digital de Stanford
      • Programación de la praxis – Afile sus conocimientos como su logotipo dice “afile sus sierras”
      • Construir mejor el software, juntos – Construir programas
      • Aprende a codificar haciendo – Code School – Aprende a construir

      Esta respuesta es para desarrolladores de Java que desean aprender algoritmos y estructuras de datos:

      Algorithms, 4th Edition por Robert Sedgewick y Kevin Wayne es un buen libro para aprender algoritmos y DS. Las principales razones para sugerir este libro son

      1. Cuenta con dos cursos de video, que actualmente se imparten en la Universidad de Princeton https: // www . coursera .org / course / algs4partI y https://www.coursera.org/course/algs4partII , que explican el libro y también tiene muchos cuestionarios y ejercicios de programación práctica.
      2. Si bien la mayoría de los otros libros proporcionan un pseudo código, este libro proporciona implementaciones reales. Puede descargar todo el código y las implementaciones en el libro. http://algs4.cs.princeton.edu/code/

      Mi sitio web:
      El manual de informática

      He estado trabajando en un sitio que enseña algoritmos y estructuras de datos de una manera que no requiere una sólida formación matemática. Está destinado a material complementario para cursos universitarios, revisión de entrevistas de trabajo o una referencia diaria. Por favor, compruébelo y espero que lo encuentre útil en sus futuros esfuerzos.

      Me gustan mucho los Fundamentos de la Algorítmica de Brassard & Bratley. Los algoritmos se recopilan por estrategia en lugar de por problema, lo que tiene mucho sentido desde la perspectiva del diseño. (Brassard fue mi consejero de tesis.)

      Aunque en la mayoría de las universidades del mundo se enseña a los estudiantes el libro “Introducción a los algoritmos” de Cormen, Leiserson, Rivest y Stein (o más comúnmente por CLRS, las primeras letras de los cuatro autores), pero yo prefiero ” Algoritmo Diseño ”por Kleinberg y Tardos .

      Creo que este último es mucho más comprensible y beneficioso para el algoritmo de aprendizaje, y además tiene preguntas mucho mejores para practicar.

      Siento que mirar un video tutorial es una buena manera de entender un algoritmo. Si se explica bien, lleva menos tiempo y se conserva en la memoria durante un período de tiempo más prolongado.

      Encontré este canal de Youtube que tiene buenos videos sobre algoritmos con ejemplos.

      Youtube – IDeserve

      Los algoritmos de programación recursiva y dinámica son muy difíciles de entender y estos videos explican estos conceptos de manera muy efectiva.

      Lista de reproducción en la programación dinámica:

      Lista de reproducción en los árboles:

      Lista de reproducción en matrices:

      O puede consultar esta lista de reproducción en todos los problemas de programación:

      Otro enfoque amigable para el alumno para entender los algoritmos es visualizar una solución. La función de visualización de código que se ofrece en este sitio web: IDeserve es una muy buena manera de aprender algoritmos porque proporciona una manera de ejecutar el código en una prueba de datos.

      Éstos son algunos de los buenos algoritmos:

      Algunos problemas de programación dinámica:

      Número de Fibonacci

      Suma máxima de subarreglos

      Problema de ruptura de palabras

      Número total de posibles árboles binarios de búsqueda con las teclas ‘n’

      Subconjunto del problema de suma

      Palíndromo más corto

      Palindrome Min Cut

      Número mínimo de intentos para llegar desde la palabra de origen a la palabra de destino

      Número mínimo de monedas para hacer cambio.

      Encuentra la ruta de costo mínimo en una matriz

      La subcadena palindrómica más larga

      Secuencia palindrómica más larga

      Encuentra la longitud de la subsecuencia creciente más larga en una matriz

      Secuencia creciente más larga O (n logn)

      La subcadena común más larga

      La subsecuencia común más larga

      Encuentra la longitud de la subsecuencia bitónica más larga en una matriz

      Para imprimir el número máximo de Como usando cuatro claves dadas.

      Problema de la mina de oro

      Encuentra la distancia de edición mínima entre dos cadenas dadas

      0-1 Problema de mochila

      Distintas cadenas binarias de longitud n sin 1s consecutivos

      Contar todas las decodificaciones posibles de una secuencia de dígitos dada

      Encuentra el número total de formas de hacer cambios usando un conjunto de monedas dado

      Establecer problema de partición | Programación dinámica

      Algunos árboles y problemas de gráficos:

      Previa pedido de un árbol binario

      Recorrido posterior de un árbol binario

      En orden de travesía de un árbol binario

      Nivel de árbol binario Orden transversal

      Recorrido de orden de nivel espiral de un árbol binario | Serie 1

      Imprimir la vista derecha de un árbol binario

      Imprima todos los nodos de un árbol binario que no tengan hermanos

      Imprimir todos los caminos de la raíz a la hoja de un árbol binario

      Profundidad mínima de un árbol binario

      Imprimir la vista izquierda de un árbol binario

      Encuentra la suma de todas las hojas izquierdas de un árbol binario.

      Encuentra la profundidad del nodo de hoja impar más profundo

      Compruebe si un árbol binario es un árbol binario completo o no

      Compruebe si un árbol binario está completo o no

      Compruebe si dos nodos son primos en un árbol binario

      Compruebe si dos árboles binarios son idénticos

      Compruebe si todos los nodos internos de BST tienen un solo hijo sin árbol de construcción

      Convertir el árbol n-ary dado a su imagen de espejo

      Convertir un árbol binario a su árbol espejo.

      Imprimir vista superior de un árbol binario

      Imprima la vista superior de un árbol binario utilizando el orden de nivel transversal

      Imprimir vista inferior de un árbol binario

      Imprima la vista inferior de un árbol binario utilizando el orden de nivel transversal

      Eliminar los nodos del árbol de búsqueda binario que están fuera del rango dado

      Eliminar todos los nodos que se encuentran en la ruta con una suma menor que k

      Eliminar todos los medios nodos de un árbol binario dado

      Imprimir árbol binario en orden vertical

      Rellenar vecinos correctos para todos los nodos en un árbol binario

      El ancestro común más bajo de dos nodos en un árbol de búsqueda binario

      Sucesor en orden de un nodo en un árbol binario

      Recupere un árbol de búsqueda binario si se intercambian las posiciones de dos nodos.

      Encuentre el piso y el techo de un elemento a partir del conjunto de datos dado utilizando el árbol de búsqueda binario

      Suma diagonal de un árbol binario.

      Crear un árbol de búsqueda binario equilibrado a partir de una matriz ordenada

      Convertir una lista ordenada de enlace doble en un árbol de búsqueda binaria equilibrada

      Convertir un árbol binario en una lista doblemente enlazada

      Compruebe si un árbol binario está equilibrado o no

      Compruebe si un árbol binario es un árbol de búsqueda binario

      Compruebe si dos árboles de búsqueda binarios son idénticos dadas sus representaciones de matriz | Conjunto 2

      Compruebe si dos árboles de búsqueda binarios son idénticos dadas sus representaciones de matriz

      Compruebe si un árbol binario es un subárbol de otro árbol binario en el tiempo O (n)

      Compruebe si un árbol binario es un subárbol de otro árbol binario en el espacio O (1)

      Árbol binario de búsqueda | Inserción y Búsqueda

      Árbol binario de búsqueda | Supresión

      Compruebe si un árbol binario dado es un árbol simétrico o no

      Compruebe si el árbol n-ario dado es un árbol simétrico o no

      Número total de posibles árboles binarios de búsqueda con las teclas ‘n’

      Encuentra el tamaño de BST más grande en un árbol binario

      El ancestro común más bajo de 2 nodos en un árbol binario

      Encuentre la altura del árbol binario de su representación matriz matriz

      Convertir árbol binario a árbol binario de búsqueda

      Construye el árbol binario a partir de su representación matriz matriz

      Construir árboles binarios a partir de recorridos inorder y preorder

      Construir árbol binario a partir de recorridos inorder y postorder

      Árbol AVL | Lo esencial

      Árbol AVL | Inserción

      Árbol AVL | Supresión

      Estructura de datos Trie | Insertar y buscar

      Estructura de datos Trie | Borrar

      Ajuste de patrones utilizando Trie

      Coincidencia de prefijos más larga utilizando Trie

      Dada una secuencia de palabras, agrupa todos los anagramas e imprímelos.

      Serializar y Deserializar un árbol binario de búsqueda

      Serializar y deserializar un árbol de búsqueda binario utilizando el recorrido de orden posterior

      Amplia primera búsqueda en una gráfica.

      Clasificación topológica de una gráfica acíclica dirigida.

      Número mínimo de intentos para llegar desde la palabra de origen a la palabra de destino

      Problema de círculos de amigos – Teoría de grafos

      El algoritmo de ruta más corta de Dijkstra

      Algoritmo de Bellman-Ford

      Algunos problemas de matrices:

      Algoritmo de clasificación – Selección de selección

      Algoritmo de clasificación – Ordenación por inserción

      Algoritmo de clasificación – Bubble Sort

      Fusionar clasificación

      Clasificación de panqueques

      Algoritmo de clasificación – Ordenación de pila

      Girar una matriz

      Número de Fibonacci

      Combina dos matrices ordenadas sin usar espacio adicional

      Suma máxima de subarreglos

      Subarreglo promedio máximo de tamaño k

      Subcadena más larga con caracteres que no se repiten

      Líderes en una matriz

      Encontrar la longitud mínima de sub array con suma K

      Búsqueda binaria en una matriz ordenada

      Busca una matriz ordenada

      Reorganizar los elementos en una matriz para poner los elementos positivos y negativos en orden alterno

      Encuentra el siguiente número mayor usando los mismos dígitos

      Siguiente elemento mayor en una matriz

      Primer carácter no repetitivo en una cadena.

      Encuentra el ‘n’ número más frecuente en la matriz

      Encuentra el número que falta en la secuencia creciente

      Encontrar duplicados en una matriz entera

      Encuentra elementos comunes en ‘n’ arreglos ordenados

      Encuentra un elemento pico en una matriz

      Distribuir problema de chocolates

      Contar las frecuencias de los elementos de la matriz en el rango de 1 a n

      Encuentra todas las permutaciones de una cadena

      Encuentra pivote en una matriz rotada ordenada

      Encuentra un elemento en una matriz rotada ordenada

      Encuentre el elemento en la matriz rotada clasificada sin encontrar pivote

      Compra y venta de acciones | Parte 2

      Compra y venta de acciones | Parte 1

      Encuentra el índice de 0 para reemplazar para obtener la secuencia continua más larga de 1s

      O (n) enfoque de tiempo para encontrar el índice de 0 para reemplazar y obtener la secuencia continua más larga de 1s

      Atrapando el agua de lluvia entre torres

      El problema del horizonte

      Número mínimo de monedas para hacer cambio.

      Encuentra la ruta de costo mínimo en una matriz

      Encuentra la longitud de la subsecuencia creciente más larga en una matriz

      Secuencia creciente más larga O (n logn)

      Encuentra la longitud de la subsecuencia bitónica más larga en una matriz

      Dada una matriz con todos los elementos distintos, encuentre la longitud de la sub-matriz más larga que tiene elementos (no en ningún orden en particular) que podrían formar una secuencia contigua

      Encuentre una matriz de enteros correspondiente a la cadena que especifica las transiciones de aumento y disminución

      Problema de la mina de oro

      Encuentra la mediana de dos matrices ordenadas

      Encuentra el elemento mayoritario en una matriz

      0-1 Problema de mochila

      Contar todas las decodificaciones posibles de una secuencia de dígitos dada

      Encuentra el número total de formas de hacer cambios usando un conjunto de monedas dado

      Encuentra sub-secuencia creciente de longitud tres con producto máximo

      Encuentra sub-secuencia creciente de longitud tres con producto máximo | Enfoque optimizado

      Establecer problema de partición | Recursion

      Establecer problema de partición | Programación dinámica

      Algunos problemas de cuerdas:

      Invertir palabras en una cadena

      Eliminar espacios de una cadena dada

      Subcadena más larga con caracteres que no se repiten

      Compruebe paréntesis equilibrados en una cadena

      Evaluación de Expresión Postfix

      Agrupe todos los anagramas de una determinada serie de cadenas | Serie 1

      Primer carácter no repetitivo en una cadena.

      Encuentra todas las permutaciones de una cadena

      Problema de ruptura de palabras

      Subconjunto del problema de suma

      Palíndromo más corto

      Palindrome Min Cut

      Número mínimo de intentos para llegar desde la palabra de origen a la palabra de destino

      La subcadena palindrómica más larga

      Algoritmo de Manacher

      Secuencia palindrómica más larga

      La subcadena común más larga

      La subsecuencia común más larga

      Para imprimir el número máximo de Como usando cuatro claves dadas.

      Encontrar secuencias de ADN repetidas de 10 letras.

      Encuentra la distancia de edición mínima entre dos cadenas dadas

      Distintas cadenas binarias de longitud n sin 1s consecutivos

      El cálculo de matriz de sufijo de prefijo más largo en el algoritmo de coincidencia de patrones KMP.

      El algoritmo de Knuth Morris Pratt para la comparación de patrones.

      Algunas listas vinculadas y problemas de pila:

      Fusionar dos listas enlazadas ordenadas

      Invertir una lista enlazada – Recursiva

      Invertir una lista enlazada – Iterativa

      Invierta todos los nodos k alternativos de una lista enlazada

      Encuentre el nth Node desde el final de una lista enlazada

      Suma de dos listas vinculadas usando pilas

      Suma de dos listas vinculadas utilizando Recursión | Serie 1

      Implementación de caché LRU

      Detecta un bucle en una lista enlazada y encuentra el nodo donde comienza el bucle.

      Convertir una lista ordenada de enlace doble en un árbol de búsqueda binaria equilibrada

      Convertir un árbol binario en una lista doblemente enlazada

      Encuentra la intersección de dos listas vinculadas

      Encuentre la intersección de dos listas vinculadas: O (m + n) Complejidad de tiempo y O (1) Complejidad de espacio

      Pila Mínima O (1)

      Espero que esto ayude.

      Hay muchos libros geniales y recursos en línea que cubren estructuras de datos y algoritmos. Soy particularmente aficionado a Techie Delight. Realmente me ayudó a mejorar mi lógica, y mis habilidades de programación ahora son mucho mejores. No solo me ayudó con la preparación de la entrevista de codificación, sino que también me enseñó las mejores prácticas de codificación.

      Aunque carece de una explicación detallada en algunos artículos, no tuve ningún problema, ya que el código es fácilmente comprensible con la ayuda de comentarios útiles.