Project Overview
Sorting can be defined as arranging list, number, or any
times in an systematic way in a certain order of sequence having comparable properties. In simple
word Sorting is the process to rearrange the items of a given list in Ascending
Order/Descending Order.
Previously in our Computer Graphics Project blog we have discussed about Bucket sort program a sorting program. In that Computer Graphics Project
program the user uses to provide two input array to store and show the sorting process and result,
while in this project the sorting is show dynamically with Circles representing the input list to
sort.
The project transforms a traditional sorting algorithm
into an interactive visual experience. Array elements are represented graphically, allowing users to observe
comparisons, swaps, and the gradual formation of the sorted array. The application is designed to make
sorting algorithms easier to understand by connecting algorithmic concepts with Computer Graphics and
animation.
Project Description
The underlying concept of
sorting algorithm includes the comparisons, swapping of elements, and assignments. The DSAV ( Dynamic
Sorting Algorithm Visualizer ), Visualizes the Bubble Sort Algorithm. In this algorithm,
comparisons starts from the first two elements of the array and finding the largest item and move (or
bubble) it to the top. With each subsequent iteration, find the next largest item and bubble it up towards
the top of the array.
This DSA Visualizer depicts the swapping of elements by swapping the
circles (which are the items of the array in our case), for each item different radii of circle is
generated according to the value of the item. This swapping process occurs for at the max of n
iterations. Thus at the end of nth iteration, the array of elements are sorted in
the ascending order which is the desired output of the DSAV. Below is the logic or say short algorithm
of the Dynamic Sorting Algorithm Visualizer Computer Graphics Project.
Logic of sorting
If not in the process of swapping of 2 circles then only get 2 new circles to swap.
While the counter_i < 10
While counter_j <9
if the a[counter_j] > a[counter_j]
Swap 2 circles
Once exchanged goto swap
Increment counter_j
Increment counter_i
Swap:
Print which circles are getting swapped.
Call swap_circles function again with counter_j and counter_j+1 values.
Mark the end of the function sort.
Usages
When you run the program first the window generate will ask your
.'press enter to continue.....' ;
When your press Enter key, new screen will come where Menu appears with instrcutions on what to do below is usage cases for the key.
Following is what keyboard will do after it get pressed -
s : To start sorting
r : To randomizes the sorted list
esc : Exit
Storing will processed in the screen itself until complet or stopped by pressing esc
Technologies Used
- C/C++
- OpenGL
- GLUT/freeGLUT
- Computer Graphics
- Data Structures and Algorithms
Improvements Over the Original Version
The original concept focuses on visually demonstrating sorting using OpenGL. The improved version extends this concept into a more complete interactive visualization system.Sorting Algorithms
The improved version can demonstrate several commonly used sorting algorithms:- Bubble Sort — repeatedly compares adjacent elements and swaps them when necessary.
- Selection Sort — repeatedly selects the minimum or maximum element and places it in its correct position.
- Insertion Sort — builds the sorted array one element at a time.
- Merge Sort — recursively divides the array and merges sorted portions.
- Quick Sort — partitions the array around a pivot and recursively sorts the resulting portions.
Future Enhancements
Future versions of the project can include:- Additional sorting algorithms
- Step-by-step execution mode Keyboard and mouse controls
- Interactive GUI menus
- 3D visualization
- Sound effects for comparisons and swaps