mbeps / algorithms

Jupyter Notebook containing various searching and sorting algorithms. Each algorithms is explained. All the algorithms are also compared to each other.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Welcome to the Algorithms Repository! This project is dedicated to providing implementations, explanations, and comparisons of various sorting and searching algorithms. Whether you're a student learning these concepts for the first time, a teacher seeking educational resources, or a professional looking to brush up on fundamentals, this repository has something for you.

Requirements

  • Python 3.9+
  • Poetry or Anaconda
  • Jupyter

Contents

Sorting Algorithms

Here, we have a collection of some classic sorting algorithms, each with accompanying explanations and complexity analyses.

  1. Bubble Sort: A simple comparison-based sorting algorithm.
  2. Quick Sort: A divide-and-conquer sorting algorithm.
  3. Merge Sort: An efficient, stable sorting method.
  4. Insertion Sort: A simple, adaptive sorting algorithm.
  5. Selection Sort: An in-place comparison sorting algorithm.
  6. Heap Sort: A comparison-based sorting algorithm using a binary heap.
  7. Radix Sort: A non-comparative integer sorting algorithm.
  8. Shell Sort: A generalized version of insertion sort.

Searching Algorithms

This section provides a wide range of searching algorithms along with their unique characteristics, advantages, and disadvantages.

  1. Linear Search: A simple method that scans elements sequentially.
  2. Binary Search: A logarithmic search algorithm for sorted lists.
  3. Jump Search: A square root based searching method for sorted lists.
  4. Interpolation Search: A variant of binary search for uniformly distributed values.
  5. Hash Table Lookup: An efficient way to search using hash tables.
  6. Binary Search Tree Lookup: A tree-based search algorithm.
  7. B-Tree Search: A self-balancing tree structure used in databases and file systems.
  8. Red-Black Tree Search: A self-balancing binary search tree.
  9. Trie Search: An ordered tree data structure used for string-based keys.

Instructions

1. Clone the Project Locally

git clone https://github.com/mbeps/algorithms.git

2. Install Dependencies

You will need to install the project's dependencies. This is not required if your using Anaconda.

poetry install

About

Jupyter Notebook containing various searching and sorting algorithms. Each algorithms is explained. All the algorithms are also compared to each other.

License:MIT License


Languages

Language:Jupyter Notebook 100.0%