Я написал алгоритм quicksort в C#, но у него есть проблема, когда я его компилирую, он не работает в некоторых условиях, например, когда я ввожу число 12,32,11 в textbox6 для сортировки, это выдает ошибки диапазона, когда я перейти проследить его, отладчик показывает, что Num [] принял НУМС [0] = 12, НУМС [1] = 11, НУМС [2] = 1Проблема с алгоритмом QuickSort в C#
Отредактировано: я изменил состояние в то время, и это знает оленью кожу выдает ошибки диапазона, но когда вход 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;
}
, возможно, вы должны разместить полный код ... В любом случае, реализацию быстрой сортировки в обработчике события кнопки не похож очень хорошая идея ... –
1) Вы не опубликовали полный цикл. 2) Я не вижу рекурсии. Итак, как это должно быть быстро сортировать? – CodesInChaos
Я внесла свой вопрос и вставлю полный код – Arash