Выбор Сортировка ArrayList Вывод неправильный: в порядке возрастания - PullRequest
1 голос
/ 27 апреля 2019

Мне пришлось кодировать Selection Sort, и раньше я использовал Array, и он работал отлично, но текстовые файлы были слишком большими, чтобы использовать Array, поэтому мне пришлось преобразовать код в ArrayList.Теперь происходит то, что (с большим текстовым файлом) большинство чисел отсортированы, но между отсортированными есть несколько несортированных чисел, думаю, это может быть ошибкой дублирования ...

Я попытался изменить нав порядке убывания, и он делает то же самое.Я использовал меньший текстовый файл, чтобы показать вывод.Все соответствующие методы приведены ниже.

public void SelectionSort() // ascending order
    {

        for (int i = 1; i <= List.Count; i++) // go through the list
        {
            ListClass minimum = (ListClass)List[i-1];
            int min = i - 1;
            for (int j = i;j <= List.Count-1; j++)
            {
                ListClass cur = (ListClass)List[j];

                if (minimum.getNum() > cur.getNum())
                    min = j; // min equals smallest in list j

            }
            swap(List, i-1, min); // swap current position in list i and the smallest position in list j
        }
        Console.WriteLine("Array after selection sort: ");
        foreach (ListClass cur in List)
        {
            cur.Display();
        }

public static void swap(ArrayList List, int x, int y)
    {
        object temp = List[x];
        List[x] = List[y];
        List[y] = temp;
    }
    public void Display()
    {
        foreach (ListClass cur in List)
        {
            cur.Display();
        }
    }

Массив перед сортировкой: 1 2 5 7 8 90 889 88 654 33 2 3 Массив после сортировки выбора: 1 2 3 5 7 8 90 2 88 33 654 889

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