Skip to content

My own implementations for the most common Data Structures and Algorithms

Notifications You must be signed in to change notification settings

AhmedYahyaE/data-structures-and-algorithms-implementations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)