这个程序主要由我的教授负责,他留给我的是编写一个数组,该数组将对从文件中扫描的数组执行选择排序。
我在几乎完美运行的教科书的帮助下编写了代码。然而,输出是错误的,因为当数字 0 不在输入文件中时,输出中的前 5 个数字(应该按升序排序)都是 0。数组中的最后 5 个数字(最大的 5 个)也不存在。
输出还以原始、未排序的顺序列出了输入文件中的数字,并且没有显示错误。所有的数字都在那里。
我的方法代码:
private static void selectionSort( int arr[], int cnt)
{
int index;
int minIndex;
int minValue;
for (cnt=0; cnt < (arr.length-1); cnt++)
{
minIndex = cnt;
minValue = arr[cnt];
for (index = cnt + 1; index< arr.length; index++)
{
if (arr[index] < minValue)
{
minValue = arr[index];
minIndex = index;
}
}
arr[minIndex] = arr[cnt];
arr[cnt] = minValue;
}
}
这是输出:
原始兰特2:75 62 110 144 108 146 121 119 61 164 170 34 78 41 89 84 74 132 156 160 94 55 76 97 48
排序的 rands2:0 0 0 0 0 34 41 48 55 61 62 74 75 76 78 84 89 94 97 108 110 119 121 132 144
我是否犯了任何错误会导致这种情况发生?