Skip to content

Latest commit

 

History

History
75 lines (53 loc) · 3.32 KB

README.md

File metadata and controls

75 lines (53 loc) · 3.32 KB

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 📃