我在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++;
}
答案 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;
}
}
}
}