Skip to content

A dynamic and hands‑on collection of Jupyter Notebooks and well commented Python code files that walk through all the core concepts of algorithms design (sorting, searching, complexity, data structures etc...). Clear explanations, live code, visualizations and exercises make it a perfect support not only for professionals but also for students.

Notifications You must be signed in to change notification settings

GCRA101/Algorithms-and-Data-Structures

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 Algorithms and Data Structures

A curated collection of Python scripts developed during the course "Introduzione agli Algoritmi" at La Sapienza University of Rome.
This repository contains implementations of fundamental algorithms and data structures, organized by topic, along with exercises and examples.


✨ Features

  • Clean, well‑structured Python implementations
  • Exercises grouped by algorithmic topic
  • Focus on both theory and practice
  • Ready to use for study, revision, or teaching

📖 Table of Contents


📝 Description

This repository collects Python scripts written as part of the Introduction to Algorithms course.
Each script demonstrates the implementation of a specific algorithm or data structure, accompanied by exercises that reinforce the concepts.


⚡ Algorithms' Computational Complexity

Scripts and notes covering:

  • Big‑O, Big‑Ω, Big‑Θ notation
  • Time and space complexity analysis
  • Practical examples of complexity evaluation

🔍 Search Algorithms

Implementations include:

  • Linear Search
  • Binary Search
  • Recursive and iterative approaches

🔄 Recursion

Examples of recursive problem solving:

  • Factorial
  • Fibonacci sequence
  • Recursive tree traversals
  • Divide‑and‑conquer strategies

📊 Sorting Algorithms

Classic sorting techniques:

  • Bubble Sort
  • Insertion Sort
  • Selection Sort
  • Merge Sort
  • Quick Sort

🗂 Data Structures

Lists

  • Array‑based lists
  • Linked lists (singly and doubly linked)

Stacks and Queues

  • Stack (LIFO)
  • Queue (FIFO)
  • Circular queues
  • Deque implementations

Trees

  • Binary Trees
  • Binary Search Trees (BST)
  • Tree traversals (preorder, inorder, postorder, level‑order)

Red‑Black Trees

  • Balanced BST implementation
  • Insertions and deletions with rotations
  • Ensuring logarithmic height

🚀 Getting Started

Prerequisites

  • Python 3.8+
  • Git

Clone the Repository

git clone https://github.com/GCRA101/Algorithms-and-Data-Structures.git
cd Algorithms-and-Data-Structures

About

A dynamic and hands‑on collection of Jupyter Notebooks and well commented Python code files that walk through all the core concepts of algorithms design (sorting, searching, complexity, data structures etc...). Clear explanations, live code, visualizations and exercises make it a perfect support not only for professionals but also for students.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published