Skip to content

Martinmiccoli/Algorithm-and-Data-Structure

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 

Repository files navigation

Algorithms & Data Structures for Data Science

This repository showcases the work completed during the Algorithms & Data Structures for Data Science course, focusing on implementing classic algorithms and exploring Python's data structures in depth. The goal was to build a strong foundation by understanding how these algorithms and structures work from the ground up.

πŸ“š Overview

The repository contains:

  • Development of key sorting algorithms, search algorithms from the ground up.
  • Exercises aimed at uncovering the mechanics behind Python's data structures and their associated methods.
  • Hands-on problem-solving using custom implementations, with a focus on meeting strict time complexity requirements and enhancing code performance.

✨ Key Highlights

  • Practical Experience: Building algorithms like sorting and searching from scratch clarifies their inner workings and core principles.
  • Efficiency Focus: Tackling problems within defined constraints enhances comprehension of algorithm performance and its implications in real-world scenarios.
  • In-Depth Understanding: Although Python provides highly optimized, ready-made solutions, implementing these structures manually unveils the complexities of their design and functionality.

πŸ” Algorithms Implemented

Category Algorithm/Method Description
Sorting Algorithms - Selection Sort Sorts by repeatedly finding the minimum and swapping it.
- Insertion Sort Builds the sorted list one element at a time.
- Quick Sort Divides and conquers using partitioning.
- Merge Sort Sorts by dividing the list and merging it.
- Quick Select Finds the k-th smallest element efficiently.
Heap Methods - Open Addressing (Linear Probing) Resolves collisions by linearly searching for the next available slot.
- Hashing with Chains Uses linked lists to manage collisions.
Binary Search Tree - Basic implementation and operations Implements a tree structure for efficient searching and sorting.

πŸš€ Takeaways

Understanding the core principles behind algorithms and data structures is crucial for writing optimized and efficient code. This repository serves as a toolkit for exploring the building blocks of computer science while improving your problem-solving skills.

Feel free to explore and learn! 😊

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors