c #: рекурсивный выбор сортировки не показывает никаких результатов - PullRequest
0 голосов
/ 22 апреля 2019

условие pre: иметь упорядоченный массив (из текстового файла) из 1000 целых чисел.

условие post: сортировать массив целых чисел с помощью рекурсивной сортировки выбора.

Код не отображает никакихрезультаты на всех.Я добавил рекурсивные методы, в основной метод, который я вызываю метод RecursiveSelection.

Я пытался сделать рекурсивный метод методом int и int [], но он по-прежнему не дает результатов.

public static void RecursiveSelection(int[] Array)
{
    Console.WriteLine("Array after Recursive Selection Sort: ");

    SelectionSortRecursive(Array, 0); // initial recursive call            
}

private static void SelectionSortRecursive(int[] Array, int n) // sorted in ascending order recursively
{
    if (n >= Array.Length - 1)
        return;
    int min = n;
    for (int i = n+1; i < Array.Length; i++)
    {
        if (Array[i] < Array[min])
            min = i;
    }
    swap(Array, n, min);
    SelectionSortRecursive(Array, n + 1);     
}

public static void swap(int[] Array,int x, int y)
{
    int temp = Array[x];
    Array[x] = Array[y];
    Array[y] = temp;
}

Выводом является оператор Console.Writeline "Массив после рекурсивной сортировки выбора ...", но больше ничего не отображается.Я ожидал, что он отобразит отсортированный список.

1 Ответ

1 голос
/ 22 апреля 2019
class Program
{
    static void Main(string[] args)
    {
        int[] array = { 344, 334, 200, 188, 39, 981, 33 };

        Console.WriteLine("Array after Recursive Selection Sort: ");

        SelectionSortRecursive(array, 0); // initial recursive call

        foreach (int i in array)
        {
            Console.WriteLine(i);
        }

        Console.ReadKey();
    }

    private static void SelectionSortRecursive(int[] Array, int n) // sorted in ascending order recursively
    {
        if (n >= Array.Length - 1)
            return;
        int min = n;
        for (int i = n + 1; i < Array.Length; i++)
        {
            if (Array[i] < Array[min])
                min = i;
        }
        swap(Array, n, min);
        SelectionSortRecursive(Array, n + 1);
    }

    public static void swap(int[] Array, int x, int y)
    {
        int temp = Array[x];
        Array[x] = Array[y];
        Array[y] = temp;
    }
}

output

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...