Мне пришлось кодировать 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);
}
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