Para cada estudiante universitario que estudia computadoras, la parte más difícil es aprender estructuras de datos y algoritmos.
Obviamente, sepa que la estructura de datos y el algoritmo son muy importantes, pero si no puede aprenderlo, será grande cuando lo mencione.
No sé si eres así, de todos modos, era así, y hasta donde sé, parece que la mayoría de los programadores son así.
Cuando comenzamos la universidad, ¿era realmente difícil aprender estructuras de datos y algoritmos? Incluso si eres muy inteligente, debe ser un poco difícil de aprender. Ahora creo que hay aproximadamente dos razones por las que la estructura de datos y el algoritmo no son buenos cuando estamos en la universidad:
- Nuestro conocimiento en ese momento era demasiado limitado, y el estudio era más rígido. No sabía cómo encontrar todo tipo de material auxiliar de aprendizaje, etc., por lo que me resultó difícil hacerlo yo mismo.
- La mayoría de los maestros simplemente siguen el libro para explicar, no saben enseñar o compartir algo ...
De esta manera, no abandonamos accidentalmente la estructura de datos y el algoritmo cuando estábamos en la universidad. Por supuesto, no faltan los que han aprendido bien. Escoria, solo podemos ver a sus escuelas reclutarse en grandes fábricas, y Imagine que han alcanzado la cima de sus vidas y ganado Bai Fumei ...
De hecho, las estructuras de datos y los algoritmos son realmente difíciles, pero mientras trabajemos duro y gastemos más tiempo para aprender y practicar, aprender estructuras de datos y algoritmos no es un problema. Por supuesto, si agrega estos La bendición del sitio web, entonces estará más cómodo con el aprendizaje.
Un sitio web para aprender algoritmos
En primer lugar, hay un sitio web que debe ir a cada algoritmo y estructura de datos de aprendizaje. Lo sabrá cuando lo diga. Ese es el famoso LeetCode, que es: https://leetcode.com/
Debido a que este sitio web es realmente una taza de vaca, ahora hay una versión china de la versión china de "Power Buckle". Si abre https://leetcode.com/, se lo saltará automáticamente aquí sin accidente:
La versión china se ve así: haga clic para explorar y mostrarle
Inserte la descripción de la imagen aquí
Un hombre fuerte! ¡No te mientas!
Esos sitios de visualización
Los siguientes son algunos sitios web de visualización que debe conocer en el camino del aprendizaje de estructuras de datos y algoritmos: ¿Qué significa? Cuando estudiamos estructuras de datos y algoritmos, la razón por la cual es más difícil es porque la estructura de datos y Los algoritmos son relativamente abstractos y nos resulta difícil de entender, por lo que una de las mejores formas de comprender las estructuras de datos y los algoritmos es observar su uso real y, en este punto, podemos fortalecer nuestra comprensión a través de algunas animaciones visuales, las siguientes Los sitios web son sitios web visuales que le permiten observar estructuras de datos y cálculos de forma intuitiva.
Visualizaciones de estructura de datos
Enlace directo: visualizaciones de estructura de datos
Se ve así:
Algunas personas pueden decir que no entienden, está bien.
Algunas personas pueden decir que no funcionará, así que le daré una demostración simple, como un árbol de búsqueda binario:
Puede probarlo usted mismo, ¡se usará lo antes posible!
visualgo
Enlace directo: https://visualgo.net/zh
Inserte la descripción de la imagen aquí
Mirando los latidos del corazón? Seguimos mirando la operación:
Inserte la descripción de la imagen aquí
Pruébalo tú mismo!
BinaryTreeGraph
Enlace directo:
Esto es principalmente una operación visual del árbol de equilibrio. A menudo uso este sitio web. Es realmente bueno. También hay un proyecto de código abierto correspondiente que imprime un árbol binario. Si está interesado, puede echar un vistazo: https://github.com / CoderMJLee / BinaryTrees
BinaryTreeVisualiser
Enlace directo: http://btv.melezinek.cz/home.html
Inserte la descripción de la imagen aquí
Esto está relacionado principalmente con el árbol binario. Por ejemplo, el árbol de búsqueda binaria, lo ves así:
La operación es realmente muy simple, ¡puedes probarlo!
btree-js
Enlace directo: https://yangez.github.io/btree-js/
Esta es una demostración especial de B-tree, que no está mal.
Visualizador de Algoritmo
Enlace directo: https://algorithm-visualizer.org/
Este es el que más me gusta. Este es un tipo de copa de vaca. Déjame mostrarte:
¿Se ve muy profesional, jaja, traducirlo y echar un vistazo:
Como puede ver, este es principalmente un sitio web de visualización de algoritmos, principalmente para explicar varios algoritmos, es realmente genial, pero admite código, hay js, java y c ++, como mi java aquí
Entonces el código de Java relevante aparecerá a la derecha:
Luego podemos hacer clic aquí para ejecutar:
Solo pregúntale si eres fuerte, ¡pruébalo rápidamente!
Análisis de algoritmos de sitios web relacionados
hoja de bigocheats
Enlace directo: https://www.bigocheatsheet.com/
Solo dale esta imagen, debes saber para qué sirve, es útil apurarse, es realmente, realmente ...
Continuamos ...
Algoritmos-DataStructures-BigONotation
Enlace directo: http://cooervo.github.io/Algorithms-DataStructures-BigONotation/index.html
Este también es un sitio web donde puede ver el análisis de algoritmos, pero otros son más que esto:
¡Esto requiere que explores y desenterres!
Huevos pequeños
Muchos de nuestros pequeños amigos que son nuevos en estructuras de datos y algoritmos se confundirán al principio. Esta gran notación 0 es una cosa. Aquí hay una respuesta popular en Stack Overflow, que es muy buena.
https://stackoverflow.com/questions/487258/what-is-a-plain-english-explanation-of-big-o-notation
Gracias por tu gran lectura ~
Lectura recomendada: charla de expertos técnicos de Alibaba P7: ingenieros de Java que han trabajado durante 1-5 años, cómo mejorar la competitividad del núcleo