я написал алгоритм быстрой сортировки в c #, но у него есть проблема: когда я его компилирую, он не работает в некоторых условиях, например, когда я ввожу для сортировки число 12,32,11 в textbox6, он выдает ошибку диапазона, я иду, чтобы отследить это, отладчик показывает, что num [] принял nums [0] = 12, nums [1] = 11, nums [2] = 1
Отредактировано:
я изменил условие while, и он знает, что не выдает ошибку вне диапазона, но когда вход 12,32,11, выход 11,12,1
private void button5_Click(object sender, EventArgs e)
{
string[] x = textBox6.Text.Split(',');
int[] nums = new int[x.Length];
for (int counter = 0; counter < x.Length; counter++)
{
nums[counter] = Convert.ToInt32(x[counter]);
}
int i = 0;
int j = nums.Length;
int pivot = nums[0];
do
{
do
{
i++;
}
while ((i < nums.Length) && (nums[i] < pivot));
do
{
j--;
}
while (nums[j]>pivot);
if (i < j)
{
int temp = i;
nums[i] = nums[j];
nums[j] = temp;
}
}while(i<j);
int temp1 = nums[0];
nums[0] = nums[j];
nums[j] = temp1;
int pivotpoint = j;
string QuickSort = "";
foreach (var n in nums)
QuickSort += n.ToString() + ",";
textBox5.Text = QuickSort;
}