I've decided to document various algorithms and data structures in JavaScript to illustrate their impact on performance, scalability, and overall code quality 👨💻
Feel free to learn from, share, and use this information in your own projects or however you see fit 🤝
*Please note ordering of added topics may change over time.
1. Big O Notation: This folder contains resources related to Big O notation, including explanations and examples.
-
timeComplexity.js: This file Explains how execution time grows with input size, with examples of different time complexities.
-
spaceComplexity.js: This file Discusses memory usage of algorithms and compares space requirements for various data types.
-
logarithms.js: This file Describes logarithmic growth and how it affects algorithm efficiency, including examples of logarithmically increasing time complexities.
-
objectsAndArrays.js: This file describes the comparison between objects and arrays, as well as how their methods relate to time complexity.
2. Problem Solving: This folder contains resources on problem-solving approaches, patterns, and current examples.
-
problemSolvingApproach.js: This file discusses the problem-solving approach, including examples and the steps needed to effectively solve problems.
-
frequencyCounter.js: This file provides an in-depth explanation of the frequency counter pattern, with two examples demonstrating its application in solving algorithmic problems efficiently.
3. Recursion: This folder contains resources on recursion, including explanations and examples.
- recursionIntroduction.js: This file discusses the fundamentals of recursion, providing examples and steps for effective problem-solving.