AsjidAle / DSA

DSA & Design and Analysis of Algorithims

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Data Structures and Algorithms (DSA) + Design and Analysis of Algorithms (DAA)

Introduction

Welcome to the Design and Analysis of Algorithms (DAA) project! This repository contains implementations of various data structures and algorithms, along with their analyses and applications.

Table of Contents

  1. Requirements
  2. Getting Started
  3. Introduction
  4. Tree Algorithms
  5. Graph Algorithms
  6. Hashing Algorithms
  7. Sorting Algorithms
  8. Search Algorithms
  9. Optimization Algorithms
  10. Contributing

Requirements

  • A C++ compiler such as GCC or Clang

Getting Started

  1. Clone this repository to your local machine:
    git clone https://github.com/AsjidAle/DSA.git
  2. Change to the project directory:
    cd DSA
  3. You're there Now go to file your choice, compile and execute

Tree Algorithms

  • Binary Search Tree
  • Self Balancing Tree
    • AVL Tree
    • AVL+ Tree
    • B Tree
    • B+ Tree
    • AVL B Tree
    • Red-Black Tree
    • Dancing Tree
    • Cartesian Tree
    • Topological Sort
    • Fusion Tree
    • Min Heap
    • Max Heap
    • Splay Tree
    • Interval Tree
    • Link/Cut Tree

Graph Algorithms

  • Travelling Salesman Problem
    • Brute Force
    • Dynamic Programming
    • Genetic Algorithim
  • Minimum Spanning Tree
    • Prim's Algorithm
    • Kruskal's Algorithm
  • Graph Traversal
    • Depth-First Search (DFS)
    • Depth-Limited Search (DLS)
    • Breadth-First Search (BFS)
    • Best-First Search (BFS)
  • Shortest Path
    • Randomized Shortest Path
    • Dijkstra's Algorithm
    • Bellman-Ford Algorithm
  • Huffman Coding
  • Ant Colony Optimization
  • Bridges Algorithm
  • Parallel Graph Algorithms
    • Parallel Breadth-First Search
    • Parallel Depth-First Search
    • Parallel Shortest Path Algorithms

Hashing Algorithms

  • Hash Table
  • Collision Resolution
    • Linear Probing
    • Quadratic Probing
    • Double Hashing
  • Universal Hashing
  • Bloom Filter

Sorting Algorithms

  • Comparison-Based Sorting
    • Heap Sort
    • Merge Sort
    • Quick Sort
    • Insertion Sort
    • Bubble Sort
    • Block Sort
    • Cycle Sort
    • Shell Sort
    • Comb Sort
    • Gnome Sort
    • Gravity Sort
    • Intro Sort
    • Odd-Even Sort
    • Bitonic Sort
    • Library Sort
    • Tim Sort
  • Non-Comparison-Based Sorting
    • Radix Sort (LSD and MSD)
    • Pigeonhole Sort
    • Bucket Sort
    • Counting Sort

Search Algorithms

  • Linear Search
  • Binary Search

Optimization Algorithms

  • Knapsack Problem
  • Genetic Algorithm
  • Simulated Annealing
  • Constraint Satisfaction Problem

Contributing

Contributions are welcome! If you have ideas for additional algorithms, optimizations, or improvements to existing implementations, feel free to open an issue or submit a pull request. Please follow the established coding style and guidelines when contributing.

To contribute to the project:

  1. Fork the repository.
  2. Create a new branch.
  3. Make your changes and test them.
  4. Submit a pull request.

Please ensure your code follows the project's coding style and includes tests for new features or bug fixes.

Author

Feel free to reach out to me with any questions or issues.

About

DSA & Design and Analysis of Algorithims


Languages

Language:C++ 100.0%