CS210 Project — Linked List Implementation & Runtime Analysis¶
CS210 · Data Structures & Algorithms
Sorting real registration data with a custom Linked List — and timing every algorithm along the way.
Developed by Shoug Alomran & Layan Bindayel, under the supervision of Dr. Najla Althuniyan. This project compares Selection, Insertion, Merge, and Quick Sort on 3,432 student registrations to see how theoretical Big-O plays out in practice.
4 Sorting algorithms compared
3,432 Registrations processed
O(n log n) Fastest measured complexity
17 ms Merge Sort runtime on full dataset
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.