Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sumitst05/dsa-notes
Just a DSA notes repository
https://github.com/sumitst05/dsa-notes
algorithms data-structures
Last synced: 2 months ago
JSON representation
Just a DSA notes repository
- Host: GitHub
- URL: https://github.com/sumitst05/dsa-notes
- Owner: sumitst05
- Created: 2023-02-21T12:03:45.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-17T08:26:16.000Z (4 months ago)
- Last Synced: 2024-09-17T10:53:03.254Z (4 months ago)
- Topics: algorithms, data-structures
- Language: C++
- Homepage:
- Size: 224 KB
- Stars: 8
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# DSA-notes
This repository contains my notes on Data Structures and Algorithms (DSA) that I am creating as I learn and practice DSA concepts. The purpose of creating these notes is to help myself in revising and reinforcing the concepts and to share them with anyone who might find them useful.
## Table of Contents
- [Data Structures](#Data-Structures)
- [Arrays](#Arrays)
- [Strings](#Strings)
- [Linked Lists](#Linked-Lists)
- [Stacks](#stacks)
- [Queues](#queues)
- [Trees](#trees)
- [Graphs](#graphs)
- [Algorithms](#algorithms)
- [Searching](#searching)
- [Sorting](#sorting)
- [Recursion](#recursion)
- [Dynamic Programming](#dynamic-programming)
- [Greedy Algorithms](#greedy-algorithms)## Data Structures
### Arrays
- Introduction to arrays
- Operations on arrays (insertion, deletion, searching, etc.)
- 1D and 2D arrays
- Time and space complexity analysis of array operations### Strings
- Introduction to strings
- Operations on strings (concatenation, comparison, searching, etc.)
- String manipulation algorithms (reversal, palindrome check, anagram check, etc.)
- Pattern matching algorithms (Naive, Rabin-Karp, Knuth-Morris-Pratt, etc.)
- Time and space complexity analysis of string algorithms### Linked Lists
- Introduction to linked lists
- Singly linked lists
- Doubly linked lists
- Circular linked lists
- Operations on linked lists (insertion, deletion, searching, etc.)
- Time and space complexity analysis of linked list operations### Stacks
- Introduction to stacks
- Operations on stacks (push, pop, peek, etc.)
- Array and linked list implementation of stacks
- Applications of stacks### Queues
- Introduction to stacks
- Operations on queues (enqueue, dequeue, peek, etc.)
- Array and linked list implementation of queues
- Applications of stacks### Trees
- Introduction to trees
- Binary trees
- Binary search trees
- AVL trees
- Heap trees
- Tree traversal (preorder, inorder, postorder, level order)
- Operations on trees (insertion, deletion, searching, etc.)
- Time and space complexity analysis of tree operations### Graphs
- Introduction to graphs
- Types of graphs (undirected, directed, weighted, unweighted, etc.)
- Graph representation (adjacency matrix, adjacency list)
- Graph traversal (DFS, BFS)## Algorithms
### Searching
- Linear search
- Binary search
- Time and space complexity analysis of search algorithms### Sorting
- Bubble sort
- Selection sort
- Insertion sort
- Merge sort
- Quick sort
- Heap sort
- Time and space complexity analysis of sorting algorithms
- Comparison of sorting algorithms### Recursion
- Introduction to recursion
- Recursive algorithms (factorial, Fibonacci, etc.)
- Time and space complexity analysis of recursive algorithms### Dynamic Programming
- Introduction to dynamic programming
- Memoization and tabulation
- Top-down and bottom-up approaches
- Examples of dynamic programming problems (knapsack problem, longest common subsequence, etc.)
- Time and space complexity analysis of dynamic programming algorithms### Greedy Algorithms
- Introduction to greedy algorithms
- Greedy algorithm design techniques (activity selection, Huffman coding, etc.)
- Examples of greedy algorithms (Dijkstra's algorithm, Prim's and Kruskal's algorithm, etc.)
- Time and space complexity analysis of greedy algorithmsFeel free to use these notes