private async void AlgorithmPanel_Paint(object sender, PaintEventArgs e)
        {
            Graphics graphics = algorithmPanel.CreateGraphics();

            int maxWidth  = algorithmPanel.Width / elementCount; //Width of each
            int maxHeight = algorithmPanel.Height;               //Max Height of the panel

            elements = DataGeneration.GetData(maxHeight, elementCount, setModifier);

            for (int i = 0; i < elementCount; i++)
            {
                graphics.FillRectangle(new SolidBrush(Color.Black), i * maxWidth, maxHeight - elements[i], maxWidth, elements[i]);
            }

            algorithm.maxWidth     = maxWidth;
            algorithm.maxHeight    = maxHeight;
            algorithm.graphics     = graphics;
            algorithm.elementCount = elements.Length;

            Thread.Sleep(500);

            await Task.Run(() => BeginSorting(graphics, maxWidth, maxHeight, elements));

            SortComplete = true;
            algorithm.ShowCompletedDisplay(elements);
        }