AhmedYahyaE/data-structures-and-algorithms-implementations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

  • Arrays
  • Stacks
  • Queues
  • Linked Lists (Singly and Doubly Linked Lists)
  • Hash Tables
  • Graphs
  • Trees
  • 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)