Skip to content

Cultivating the foundation about Computer Science πŸ”₯

Notifications You must be signed in to change notification settings

quangnd/js-datastructures-algorithm

Repository files navigation

Learning data structures and algorithms

Using Javascript & Ava test runnerπŸ”₯

  • Algorithm: method for solving a problem.
  • Data structure: method to store information

ALGORITHMS + DATA STRUCTURES = PROGRAMS.

Table of contents πŸ—‚

  1. Problem solving patterns πŸ”¬
  2. Algorithms 🐚
  3. Data Structures πŸ•Έ

Why learn algorithm πŸ‘¨πŸ»β€πŸ’»

πŸ‘‰ Their impact is broad and far-reaching

  • Internet. Web search, packet routing, distributed file sharing, ...
  • Biology. Human genome project, protein folding, ...
  • Computers. Circuit layout, file system, compilers, ...
  • Computer graphics. Movies, video games, virtual reality, ...
  • Security. Cell phones, e-commerce, voting machines, ...
  • Multimedia. MP3, JPG, DivX, HDTV, face recognition, ...
  • Social networks. Recommendations, news feeds, advertisements, ...
  • Physics. N-body simulation, particle collision simulation, ...

πŸ‘‰ To solve problems that could not otherwise be addressed

Ex. Network connectivity Network connectivity

πŸ‘‰ To become a proficient programmer

β€œ I will, in fact, claim that the difference between a bad programmer
 and a good one is whether he considers his code or his data structures
 more important. Bad programmers worry about the code. Good
 programmers worry about data structures and their relationships. ”
 β€” **Linus Torvalds** (creator of Linux)

πŸ‘‰ For intellectual stimulation

πŸ‘‰ They may unlock the secrets of life and of the universe

Core Data Structures, Algorithms, and Concepts πŸ¦„

Here's a list of the absolute, must-have knowledge

Core Data Structures, Algorithms, and Concepts

Source: Cracking the Coding Interview 6ed

For each of these topics, make sure you understand how to use and implement them and, where applicable, the space and time complexity.

Practicing implementing the data structures and algorithm (on paper, and then on a computer) is also a great exercise. It will help you learn how the internals of the data structures work, which is important for many interviews.

If you don't feel very, very comfortable with each of the data structures and algorithms listed, practice implementing them from scratch.

In particular, hash tables are an extremely important topic. Make sure you are very comfortable with this data structure.

Up & Running πŸƒβ€

  1. Run npm i to install.
  2. Run npm test to run all tests.
  3. Run npm run test-recursion to run all tests in recursion folder.
  4. Run npm run test-search to run all tests in searching folder.
  5. Run npm run test-sort to run all tests in sorting folder.
  6. Run npm run test-data-structures to run all tests in data-structures folder.

Learning resources πŸ“ƒ

About

Cultivating the foundation about Computer Science πŸ”₯

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published