CS210 Project — Linked List Implementation & Runtime Analysis¶
Welcome to the documentation site for the CS210 Project, developed by
Shoug Alomran and Layan Bindayel
Under the supervision of Dr. Najla Althuniyan
This project evaluates how different sorting algorithms perform when applied to real-world student registration data stored in a custom Linked List structure.
Project Overview¶
-
Custom Data Structure¶
Implementation of a fully functional Linked List to store and manage student registration records.
-
Demand Scoring¶
A weighted demand scoring system that evaluates registration priority using multiple factors.
-
Sorting Algorithms¶
Implementation and comparison of:
- Selection Sort
- Insertion Sort
- Merge Sort
- Quick Sort
-
Runtime Analysis¶
Measurement and benchmarking of execution times to compare theoretical vs. practical performance.
Key Objectives¶
-
Build a fully functional program that reads, processes, and sorts real registration data.
-
Compare theoretical complexity (Big-O) with measured runtime performance.
-
Analyze how algorithm design impacts scalability.
-
Present clear, structured documentation for both implementation and analysis.
Project Structure¶
-
Introduction
Background, problem statement, and scope. -
System Design Overview
Major components and execution flow. -
Asymptotic Analysis
Theoretical T(n) and O(n) complexity comparison. -
Runtime Measurement
Empirical performance evaluation. -
Teamwork
Task distribution and coordination. -
Conclusion
Findings and future recommendations. -
References
Academic and technical sources. -
Appendices
Flowcharts, screenshots, and source code.
Technologies Used¶
- Language: Java
- Environment: Visual Studio Code
- Documentation: MkDocs Material
- Version Control: GitHub
Repository¶
You can view the complete project source code and documentation:
Summary¶
This project integrates theoretical foundations with practical implementation. It demonstrates how runtime analysis reflects algorithmic efficiency and highlights the relationship between Linked Lists, sorting algorithms, and performance optimization in computational problem-solving.