Skip to content

This repository contains three CS 3364 projects demonstrating skills in algorithm design and data structures. Projects cover search engine reliability with sorting, course sequencing with topological sorting (DFS), and shortest paths using Dijkstra’s and Bellman-Ford algorithms, highlighting efficiency and data management.

Notifications You must be signed in to change notification settings

Dhruvbam/Design-and-Analysis-of-Algorithms

Repository files navigation

Design and Analysis of Algorithms

image

About

This repository contains three major projects completed as part of the CS3364: Design and Analysis of Algorithms course at Texas Tech University. These projects focus on implementing and analyzing various algorithms to solve complex real-world problems efficiently.

Each project demonstrates a different algorithmic approach, including sorting algorithms, graph traversal algorithms, and shortest path algorithms, applied to specific problem domains. The projects are designed to highlight the power of algorithmic solutions in computer science.

Projects

This repository contains the following projects:

  1. Project 1: Evaluating Search Engine Reliability through Sorting Algorithms

    • This project focuses sorting algorithms, Merge Sort, Quick Sort and Insertion Sort are applied to assess the reliability of search engines by analyzing inversion counts in the ranking of web pages.
    • Read More
  2. Project 2: Course Scheduling Using Topological Sorting

    • This project focuses on using Depth-First Search (DFS) for topological sorting to determine the optimal order in which a student should complete courses based on prerequisites.
    • Read More
  3. Project 3: Shortest Path Finder

    • The project implements the Bellman-Ford and Dijkstra algorithms to calculate the shortest path between different buildings on a university campus, considering both positive and negative edge weights.
    • Read More

Built With

This repository primarily utilizes the following technologies:

  • Python Python: Used for implementing the algorithms.
  • Data Structures: Employed across projects to efficiently handle data and optimize algorithm performance.

How to Run the Projects

  1. Clone the repository:
    git clone https://github.com/your-repo/design-and-analysis-of-algorithms.git
  2. Navigate to the folder of the project you want to run.
  3. Follow the specific instructions in the README.md file within each project folder to execute the code.

Learning Outcomes

These projects provided hands-on experience in algorithm design, analysis, and implementation:

  • Algorithm Optimization and Complexity Analysis: Gained an in-depth understanding of analyzing algorithmic efficiency, comparing time complexities, and selecting optimal solutions for different problem types.
  • Sorting Algorithms: Enhanced knowledge of sorting algorithms Merge Sort, Quick Sort and Insertion Sort and their applications, particularly in ranking and reliability analysis.
  • Graph Traversal and Topological Sorting: Applied Depth-First Search (DFS) for topological sorting, learning to solve dependency and scheduling problems effectively.
  • Shortest Path Algorithms: Implemented Dijkstra’s and Bellman-Ford algorithms for shortest path calculations, mastering techniques in graph-based problem-solving, including handling negative weights.
  • Real-World Problem Solving: Developed skills in applying theoretical algorithmic concepts to practical scenarios, reinforcing the importance of robust, efficient solutions in software engineering.

These projects collectively strengthened my ability to design, implement, and evaluate advanced algorithms, preparing me to tackle complex computational challenges.

About

This repository contains three CS 3364 projects demonstrating skills in algorithm design and data structures. Projects cover search engine reliability with sorting, course sequencing with topological sorting (DFS), and shortest paths using Dijkstra’s and Bellman-Ford algorithms, highlighting efficiency and data management.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages