Skip to content

This repository contains two assignments from the Data Structures (CS 2413) course. The projects focus on implementing and analyzing data structures like linked lists and comparing sorting algorithms such as Quicksort, Insertion Sort, and Selection Sort, with a focus on time complexity and algorithmic efficiency in C.

Notifications You must be signed in to change notification settings

Dhruvbam/Data-Structures

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Data Structures

Image

About

This repository contains two assignment projects completed as part of the Data Structures (CS 2413) course at Texas Tech University. These assignments focus on implementing fundamental data structure algorithms and analyzing their time complexity. The projects demonstrate the use of linked lists, sorting algorithms (Quicksort, Insertion Sort, and Selection Sort), and the analysis of algorithm performance.

Assignments Overview

  1. Assignment 1: Linked List Time Complexity Analysis

    • Topic: Linked Lists and Time Complexity
    • Description: This assignment analyzes the time complexity of finding the middle of a linked list. It explores various operations on linked lists and provides insights into the efficiency of linked list traversal and manipulation.
  2. Assignment 2: Sorting Algorithm Comparison

    • Topic: Sorting Algorithms (Quicksort, Insertion Sort, and Selection Sort)
    • Description: This project implements and compares the performance of Quicksort, Insertion Sort, and Selection Sort algorithms. It provides a detailed comparison of the time complexity of these algorithms in the best, worst, and average cases, along with practical analysis of their performance.

Built With

This repository primarily utilizes:

  • C Programming C: The core programming language used to implement the data structure algorithms.

How to Use

  1. Clone the repository:
    git clone https://github.com/your-repo/data-structures.git
  2. Navigate to the folder for the specific assignment.
  3. Compile and run the C program using gcc:
    gcc Assignment1.c -o Assignment1
    ./Assignment1

Learning Outcomes

Through these assignments, I enhanced my understanding of core data structures and algorithms in C, gaining expertise in the following areas:

  1. Linked Lists & Algorithm Efficiency:

    • Implemented and analyzed linked list operations like insertion, deletion, and searching, while improving my ability to evaluate algorithm performance through time complexity analysis.
  2. Sorting Algorithm Comparison:

    • Developed and compared Quicksort, Insertion Sort, and Selection Sort. Gained insights into their time complexities and learned to select the optimal algorithm for different scenarios.
  3. C Programming Mastery:

    • Strengthened my knowledge of C, focusing on memory management, pointer manipulation, and implementing low-level data structures, providing a solid foundation in system-level programming.
  4. Time Complexity Analysis:

    • Gained a deep understanding of Big O notation, allowing me to evaluate and optimize algorithms for performance and scalability.

This experience has refined my ability to implement and analyze efficient algorithms in real-world applications.

About

This repository contains two assignments from the Data Structures (CS 2413) course. The projects focus on implementing and analyzing data structures like linked lists and comparing sorting algorithms such as Quicksort, Insertion Sort, and Selection Sort, with a focus on time complexity and algorithmic efficiency in C.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages