Skip to content

iamreallyacar/Data-Structure-and-Algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

README

This project aims to review well known data structures and algorithms, as well as implement them in various programming languages.

Objective: This repository aims to demonstrate common algorithms and data structures. Written in Python, C++, and Java.

Algorithms

Algorithm Time Complexity (Best) Time Complexity (Average) Time Complexity (Worst) Space Complexity
Quicksort O(n log n) O(n log n) O(n^2) O(log n)
Mergesort O(n log n) O(n log n) O(n log n) O(n)
Heapsort O(n log n) O(n log n) O(n log n) O(1)
Bubble Sort O(n) O(n^2) O(n^2) O(1)
Insertion Sort O(n) O(n^2) O(n^2) O(1)
Selection Sort O(n^2) O(n^2) O(n^2) O(1)

Data Structures

Graph (adjacency lists vs. matrices), directed and undirected graphs, weighted edges

BFS, DFS, Dijkstra’s algorithm, Bellman-Ford algorithm, A* algorithm for heuristic-based pathfinding: complexity and limitations

Arrays, Linked Lists, Stacks, Queues: insertion, deletion, and traversal.

Trees Binary Trees, Binary Search Trees, (Optional) AVL Trees: insertion, deletion, and traversal (in-order, pre-order, post-order).

Hash Tables chaining and open addressing.

Heaps/Priority Queues, Disjoint Sets, Tries

Dynamic Programming

Fibonacci sequence (with memoization), Coin Change, 0/1 Knapsack, Longest Common Subsequence: time-space trade-offs, memoization and tabulation, iterative vs. recursive

Extra Algorithms

Greedy algorithms, backtracking problems (e.g., N-Queens), and divide-and-conquer strategies.

About

A repository demonstrating solutions to common algorithmic problems (e.g., sorting, graph traversal, dynamic programming) with optimizations. Includes unit tests for correctness.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages