选择排序只在C#gui中工作一次

时间:2012-02-13 21:50:57

标签: c# .net sorting

我在GUI中使用选择排序,事实上,当我选择选择排序并对生成数字进行排序时,它会对生成的数字进行一次排序,但如果下次我将使用其他数字,它将只执行第一步排序只需更换两个数字然后就不会工作......那么为什么它不再工作以及为什么会出现这种不同的行为呢? 代码是: -

void SelectionSort()
{
    int i=0;
    int j, min, temp;

    min = i;
    for (j = i + 1; j < 10; j++)
    {
        if (generate[min] > generate[j])
        {
            min = j;
        }
    }
    if (min != i)
    {
        temp = generate[i];
        generate[i] = generate[min];
        generate[min] = temp;
        //show1(generate);
    }
    show1(generate);

    i++;
}  

3 个答案:

答案 0 :(得分:1)

我的猜测,你需要加i = 0;在开始。

答案 1 :(得分:1)

我想从你的函数中我是一个全局变量。 每次进入功能(在功能内部)

时,您需要将i重置为0

答案 2 :(得分:0)

using System;

namespace SelectionSortExample
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] num = { 105, 120, 10, 200, 20 };
            for (int i = 0; i < num.Length; i++)
            {
                int minIndex = i;
                for (int j = i + 1; j < num.Length; j++)
                {
                    if (num[minIndex] > num[j])
                    {
                        minIndex = j;
                    }
                }
                int tmp = num[i];
                num[i] = num[minIndex];
                num[minIndex] = tmp;
            }
        }
    }
}