Метод быстрой сортировки. Подскажите где ошибка? - C#
Формулировка задачи:
Не могу понять где ошибка?
using System;
namespace ConsoleApplication67
{
class Program
{
static void Output(int[] Arr, string name)
{
Console.WriteLine("Массив {0}", name);
for (int i = 0; i < Arr.Length; i++)
Console.Write(Arr[i]);
Console.WriteLine();
}
static void InputData(ref int[] arr)
{
int i = 0;
arr[i] = 0;
Random Num = new Random();
for (i = 0; i <= (arr.Length - 1); i++)
{
arr[i] = Num.Next(1, 10);
}
}
static void QuickSort(ref int[] arr, int lb, int ub)
{
int i, j, x, t;
i = lb;
j = ub;
x = arr[(lb + ub) / 2];
do //разделение массива+
{
while (arr[i] < x)//слева направо
i++; //ищем элемент больше х
while (x < arr[j])//наоборт
j--;
if (i <= j)//меняем элементы местами
{
t = arr[i];
arr[i] = arr[j];
arr[j] = t;
i++;
j--;
}
}
while (i < j);
if (lb < j) QuickSort(ref arr, lb, j);
if (i < ub) QuickSort(ref arr, ub, i);
}
static void Main()
{
int[] arr = new int[1000];
InputData(ref arr);
Console.WriteLine("Быстрая сортировка");
QuickSort(ref arr, 0, arr.Length - 1);
Output(arr, "arr");
Console.ReadLine();
}
}
}
ну или решите хотя бы заново.
Решение задачи: «Метод быстрой сортировки. Подскажите где ошибка?»
textual
Листинг программы
if (i < ub) QuickSort(ref arr, i, ub);