【发布时间】:2016-11-27 20:59:40
【问题描述】:
我在尝试使用 Java 中的选择排序来计算一个 int 数组的交换和比较次数时遇到了麻烦。我对交换和比较在循环中的位置感到困惑。任何指导将不胜感激。
public class IntSelectionSorter {
public static int count = 0;
public static int count2 = 0;
public static void selectionSort(int[] array)
{
int startScan;
int index;
int minIndex;
int minValue;
for (startScan = 0; startScan < (array.length - 1); startScan++)
{
minIndex = startScan;
minValue = array[startScan];
for (index = startScan + 1; index < array.length; index++)
{
count2++;
if (array[index] < minValue)
{
minValue = array[index];
count++;
minIndex = index;
}
}
array[minIndex] = array[startScan];
count++;
array[startScan] = minValue;
count++;
}
}
}
【问题讨论】:
-
具体是什么问题?您希望它做什么,它会做什么?
-
我正在为一个 int 数组创建一个选择排序器,该数组应该计算交换和比较的次数。我已经创建了一个 Bubble Sorter 来使用相同的 int 数组。我不确定我是否在此选择排序器的适当位置使用了交换 (count) 和比较 (count2)。我得到了 48 次交换和 300 次比较的答案。如果我改变放置“count”和“count2”的位置,我会得到不同的答案。我也可以发布其他文件。
标签: java selection-sort