This project implements a QuickSort algorithm in Python to organize an academic to-do list.
Tasks are sorted primarily by deadline and secondarily by priority (lower priority value is considered more urgent), allowing students to visualize which assignments should be completed first.
The algorithm applies a recursive QuickSort strategy:
- The first task is selected as the pivot.
- Remaining tasks are divided into two groups:
- Tasks with earlier deadlines or higher priority.
- Tasks with later deadlines.
- The algorithm recursively sorts each group and combines the results.
Algorithm Complexity: The average runtime of quicksort is O(n log n). The worst case occurs when the list is already sorted and the first element is always chosen as the pivot, or when many elements are equal, resulting in a runtime of O(n²).
- Color-coding tasks by course for visual organization.
- Task status tracking (completed / pending).
In production, Python’s built-in sorting would be more efficient, but quicksort is implemented here for algorithmic learning purposes.
