~/conclusion

The algorithms behaved as expected.

The project confirmed that the algorithms behaved as both theory and measurement predicted. Merge Sort and Quick Sort were fastest thanks to their O(n log n) complexity. Selection Sort and Insertion Sort were much slower, as their O(n²) complexity suggests.

FindingsLessons learnedFuture work
01 · Findings

Theory and results agree.

Fastest: O(n log n) 17 · 22 ms

Merge Sort and Quick Sort had the fastest runtimes because of their O(n log n) complexity.

Slower: O(n²) 26 · 45 ms

Selection Sort and Insertion Sort were much slower, as expected from their O(n²) complexity.

Theory matching the actual results in this way supports the correctness and soundness of the system’s implementation and design.

02 · Lessons learned

Simplicity vs. efficiency.

Simple algorithms

Selection Sort and Insertion Sort are easier to understand and implement, which makes them adequate for small data or for teaching.

Divide and conquer

As input size grows, their performance falls behind the more complex divide-and-conquer approach of Merge Sort and Quick Sort.

The project clearly showed how directly algorithmic efficiency affects program performance in real-world applications.
03 · Future work

Where this could go next.

01

Live university data

Adapt the system to take real registration data directly from university databases and analyse live course demand patterns.

02

Graphical interface

Add a graphical user interface to display the demand scores.

03

Automatic input verification

Verify the input data automatically.

04

More algorithms

Include other complex algorithms such as Heap Sort or Counting Sort.

These features would make the system more performance-driven and easier to use.

04 · Final reflection

The project achieved its goal.

An effective system that shows how algorithm design connects to data structures and to runtime behaviour in the real world, in a learning context.