我有一个任务来计算选择排序中的赋值和比较。出于某种原因,我的分配计数器不增加。我已经尝试在swap之上添加它,并尝试将其纳入交换方法 - 无济于事。任何想法,为什么它不工作?计数器不递增
更新:计数器不适用于本
Integer[] test = {1, 0, 4, 2};
selectionSort(test);
工作,但它的工作,为此:
selectionSort(new Integer[] {1, 0, 4, 2});
任何人都知道为什么吗?
public static void selectionSort(Integer[] array)
{
int assignmentCounter = 0;
int comparisonCounter = 0;
int i, j;
for(i = 0; i < array.length; i++)
{
int minIndex = i;
for(j = i + 1; j < array.length; j++)
{
comparisonCounter++;
if(array[j].compareTo(array[minIndex]) < 0)
{
minIndex = j;
assignmentCounter++;
swap(array,minIndex,i);
}
}
}
System.out.println("Selection Sort Comparisons: " + comparisonCounter + "\nSelection Sort Assignments: " + assignmentCounter);
for(int k = 0; k < array.length; k++)
{
System.out.print(array[k] + ", ");
}
System.out.println("\n\n ");
}
谢谢!
您的数组是排序? –
你现在得到的assignmentCounter的价值是什么? –
它对我来说运行良好。 –