if (k == i)
{
brush = Brushes.Red;
}
if (k <= j)
{
g.FillRectangle(Brushes.Gray, x, y - arr[k] * 10, 20, arr[k] * 10);
}
g.FillRectangle(brush, x, y - arr[k] * 10, 20, arr[k] * 10);
g.DrawString(arr[k].ToString(), new Font("Arial", 12), Brushes.Green, x + 5, y - arr[k] * 10 - 20);
x += 30;
}
}
private void button1_Click(object sender, EventArgs e)
{
timer.Start();
if (!isSorting)
{
isSorting = true;
j = i - 1;
}
if (j >= 0 && arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
j--;
}
else
{
i++;
if (i >= n)
{
timer.Stop();
}
isSorting = false;
}
Refresh();
}
private void timer1_Tick_1(object sender, EventArgs e)
{
timer.Start();
}
}
}
Foydalanilgan adabiyotlar
https://uz.wikipedia.org/wiki/Insertion_sort
https://www.geeksforgeeks.org/insertion-sort/
Dostları ilə paylaş: |