选择排序ArrayList输出不正确:升序

时间:2019-04-27 07:08:58

标签: c# arrays sorting arraylist

我必须对选择排序进行编码,并且我以前使用了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

0 个答案:

没有答案