For every college student who studies computers, the hardest part is learning data structures and algorithms. Why?
Obviously know that the data structure and algorithm are very important, but if you ca n’t learn it, it will be big when you mention it.
I do n’t know if you are like this, anyway, I was like this, and as far as I know, it seems that most programmers are like this.
When we first started college, it really was difficult to learn data structures and algorithms? Even if you are very smart, it must be a bit difficult to learn. I now think that there are roughly two reasons why the data structure and algorithm are not good when we are in college:
- Our knowledge at that time was too narrow, and the study was more rigid. I didn't know how to find all kinds of auxiliary learning materials, etc., so I found it difficult to do it myself.
- Most teachers just follow the book to explain, do n’t know to teach or share something ...
In this way, we did not accidentally leave down the data structure and algorithm when we were in college. Of course, there is no shortage of those who have learned well. We scum, we can only watch their schools recruit into big factories, and Imagine that they have reached the peak of their lives and won Bai Fumei ...
In fact, data structures and algorithms are indeed difficult, but as long as we work hard and spend more time to learn and practice, then learning data structures and algorithms is not a problem. Of course, if you add these The blessing of the website, then you will be more comfortable with learning
A website to learn algorithms
First of all, there is a website that must go to every learning data structure and algorithm. You will know when you say it. That is the famous LeetCode, which is it: https://leetcode.com/
Because this website is really a cow cup, there is now a Chinese version of the Chinese version of "Power Buckle". If you open https://leetcode.com/, you will be automatically jumped here without accident:
The Chinese version looks like this: click to explore to show you
Insert picture description here
A strong man! Do not lie to you!
Those visualization sites
The following are a few visualization websites that you have to know on the road of learning data structures and algorithms. What does it mean? When we study data structures and algorithms, the reason why it is more difficult is because the data structure and Algorithms are relatively abstract, and it is difficult for us to understand, so ah, one of the best ways to understand data structures and algorithms is to look at their actual usage, and at this point, we can strengthen our understanding through some visual animations, the following Websites are visual websites that allow you to observe data structures and calculations intuitively.
Data Structure Visualizations
Direct link: Data Structure Visualizations
It looks like this:
Some people may say that they do n’t understand, it ’s okay.
Some people may say that it wo n’t work, so I ’ll give you a simple demonstration, such as a binary search tree:
You can try it for yourself, it will be used as soon as possible!
visualgo
Direct link: https://visualgo.net/zh
Insert picture description here
Looking at the heartbeat? We continue to look at the operation:
Insert picture description here
Try it yourself!
BinaryTreeGraph
Direct link:
This is mainly a visual operation of the balance tree. I often use this website. It is really good. There is also a corresponding open source project that prints a binary tree. If you are interested, you can take a look: https://github.com / CoderMJLee / BinaryTrees
BinaryTreeVisualiser
Direct link: http://btv.melezinek.cz/home.html
Insert picture description here
This is mainly related to the binary tree. For example, the binary search tree, you look at it like this:
The operation is actually very simple, you can try it!
btree-js
Direct link: https://yangez.github.io/btree-js/
This is a special demonstration of B-tree, which is not bad!
Algorithm Visualizer
Direct link: https://algorithm-visualizer.org/
This is the one I like more. This is a cow cup guy. Let me show you:
Does it look very professional, haha, translate it and take a look:
As you can see, this is mainly an algorithm visualization website, mainly to explain various algorithms, it is really great, but it supports code, there are js, java and c ++, such as my java here
Then the relevant java code will appear on the right:
Then we can click here to run:
Just ask you if you are strong, try it quickly!
Algorithm analysis related websites
bigocheatsheet
Direct link: https://www.bigocheatsheet.com/
Just give you this picture, you should know what it is for, it ’s useful to hurry up, it ’s really, really ...
We continue ...
Algorithms-DataStructures-BigONotation
Direct link: http://cooervo.github.io/Algorithms-DataStructures-BigONotation/index.html
This is also a website where you can view the algorithm analysis, but others are more than this:
This requires you to explore and unearth yourself!
Small eggs
Many of our little friends who are new to data structures and algorithms will be confused at the beginning. This big 0 notation is a thing. Here is a popular answer on Stack Overflow, which is very good. I recommend it to you:
https://stackoverflow.com/questions/487258/what-is-a-plain-english-explanation-of-big-o-notation
Thank you for your great reading ~
Recommended reading: Alibaba P7 technical expert talk: Java engineers who have worked for 1-5 years, how to improve core competitiveness