Skip to content

Files

Latest commit

 

History

History
45 lines (37 loc) · 1.76 KB

File metadata and controls

45 lines (37 loc) · 1.76 KB

Data Structures and Algorithms Implementations

Understanding data structures and algorithms is a very important subject and it's crucial for every software developer for writing efficient and effective code. In this repository, I'm implementing some of the most common Data Structures (such as arrays, stacks, linked lists, queues, hash tables, graphs, and trees, etc) and Algorithms (such as Binary Search, Linear/Sequential Search, Insertion Sort, Bubble Sort, Merge Sort, Quicksort, etc).

Each implementation is accompanied by detailed explanations of its properties, operations, use cases, Time Complexity & Space Complexity (Big O Notation), and clear example code.

data-structures

algorithms

big-o-notation

Contents:

Data Structures:

  • Arrays
  • Stacks
  • Queues
  • Linked Lists (Singly and Doubly Linked Lists)
  • Hash Tables
  • Graphs
  • Trees

Algorithms:

  • Sequential Search / Linear Search
    • Time Complexity: O(n)
    • Space Complexity: O(1)
  • Binary Search
    • Time Complexity: O(log n)
    • Space Complexity: O(1)
  • Insertion Sort
    • Time Complexity: O(n^2)
    • Space Complexity: O(1)
  • Selection Sort
    • Time Complexity: O(n^2)
    • Space Complexity: O(1)
  • Bubble Sort
    • Time Complexity: O(n^2)
    • Space Complexity: O(1)
  • Merge Sort
    • Time Complexity: O(n log n)
    • Space Complexity: O(n)
  • Quicksort
    • Time Complexity: O(n^2)
    • Space Complexity: O(n)