https://github.com/devluxor/common-sense-guide-to-dsa
This repository contains notes made while studying from the Jay Wengrow's book: 'A Common-Sense Guide to Data Structures and Algorithms: Level Up Your Core Programming Skills' .
https://github.com/devluxor/common-sense-guide-to-dsa
Last synced: 4 months ago
JSON representation
This repository contains notes made while studying from the Jay Wengrow's book: 'A Common-Sense Guide to Data Structures and Algorithms: Level Up Your Core Programming Skills' .
- Host: GitHub
- URL: https://github.com/devluxor/common-sense-guide-to-dsa
- Owner: devluxor
- Created: 2023-06-07T17:55:23.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-11-11T11:42:10.000Z (over 1 year ago)
- Last Synced: 2025-07-23T11:44:26.098Z (11 months ago)
- Language: Go
- Homepage:
- Size: 1.97 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# A Common Sense Guide to Data Structures and Algorithms
This repository contains notes made while studying the Jay Wengrow's book: 'A Common-Sense Guide to Data Structures and Algorithms: Level Up Your Core Programming Skills'.
For an alternative approach to these topics, please visit the [Launch School 'Introduction to DSA' course](https://github.com/lucsorr/launch-school/tree/main/LS220/notes).
## Contents:
1. [Why Data Structures Matter](./01_why_data_structures_matter.md)
- The Array: The Foundational Data Structure
- Reading
- Searching
- Insertion
- Deletion
- Sets: How a Single Rule Can Affect Efficiency
.
2. [Why Algorithms Matter](./02_why_algorithms_matter.md)
- Ordered Arrays
- Searching an Ordered Array
- Binary Search
- Binary Search Vs. Linear Search
.
3. [Big O Notation](./03_big_o_notation.md)
- Big O: Count the Steps
- Constant Time Vs. Linear Time
- Same Algorithm, Different Scenarios
- An Algorithm of the Third Kind
- Logarithms
- O(log N) Explained
.
4. [Speeding Up Your Code with Big O](./04_speeding_up_your_code_with_big_o.md)
- Bubble Sort
- Bubble Sort Implemented
- The Efficiency of Bubble Sort
- A Quadratic Problem
- A Linear Solution [_Nice trick to check for duplicates in an array fast, in linear time_]
.
5. [Optimizing Code With and Without Big O](./05_optimizing_code_with_and_without_big_o.md)
- Selection Sort
- Selection Sort Implemented
- The Efficiency of Selection Sort
- Ignoring Constants
- The Role of Big O
- A Practical Example [_Nice trick to add every other element of an array to another array_]
.
6. [Optimizing for Optimistic Scenarios](./06_optimizing_for_optimistic_scenarios.md)
- Insertion Sort
- Insertion Sort Implemented
- The Efficiency of Insertion Sort
- The Average Case
- A Practical Example [_Nice trick to improve the speed of some nested iterations_]
.
7. [Blazing Fast Lookup With Hash Tables](./07_blazing_fast_lookup_with_hash_tables.md)
- Enter the Hash Table
- Hashing with Hash Functions
- How Hash Function Work
- Dealing with Collisions
- The Great Balancing Act [_Load factor (data/cells ratio) when implementing hashes_]
.
8. [Crafting Elegant Code with Stacks and Queues](./08_crafting_elegant_code_with_stacks_and_queues.md)
- Stacks
- Stacks in Action [_Algorithm to check for valid braces in a string_]
- Queues
- Queues in Action
.
9. [Recursively Recurse with Recursion](./09_recursively_recurse_with_recursion.md)
- Recurse Instead of Loop
- The Base Case
- Reading Recursive Code
- Recursion in the Eyes of the Computer
- Recursion in Action [_Algorithm to recursively traverse all files and subdirectories from a root folder_]
.
10. [Recursive Algorithms for Speed](./10_recursive_algorithms_for_speed.md)
- Partitioning
- Quicksort
- The Efficiency of Quicksort
- Worst Case Scenario
- Quickselect
.
11. [Node-based Data Structures](./11_node_based_data_structures.md)
- Linked Lists
- Implementing a Linked List
- Reading
- Searching
- Insertion
- Deletion
- Linked Lists in Action [_Good practice case for the need of a linked list_]
- Doubly Linked Lists
.
12. [Speeding Up All the Things with Binary Trees](./12_speeding_up_all_the_things_with_binary_trees.md)
- Binary Trees
- Searching
- Insertion
- Deletion
- Binary Trees in Action [_Includes traversal algorithm_]
.
13. [Connecting Everything with Graphs](./13_connecting_everything_with_graphs.md)
- Graphs
- Breadth-First Search
- Graph Databases
- Weighted Graphs
- Dijkstra's Algorithm
.
14. [Dealing with Space Constraints](./14_dealing_with_space_constraints.md)
- Big O Notation As Applied to Space Complexity
- Trade-offs between time and space