如何将静态整数设置为零?

时间:2018-02-01 17:28:46

标签: java

课程是:

  

在本练习中,我们将查看Selection的示例代码   分类。但是,在我们排序时,我们也会计算数量   交换发生,然后一旦阵列打印出来   排序

     

在selectionSort方法的末尾添加一个print语句   打印出排序期间发生的掉期数量。

     

您不应该修改run()方法。

     

提示:项目比较在哪里?尝试写出中的步骤   在纸上帮助算法。

我的代码:

import java.util.Arrays;

public class SelectionSort extends ConsoleProgram
{

private static int count;

public void run()
{
    int[] array1 = {9, 8, 7, 6, 5, 4, 3, 2, 1};
    int[] array2 = {5, 6, 4, 8, 9, 7, 3, 1, 2};

    System.out.print("First array: ");
    System.out.println(Arrays.toString(array1));
    System.out.print("Second array: ");
    System.out.println(Arrays.toString(array2));
    System.out.println();

    // sort first array
    selectionSort(array1);
    // sort second array
    selectionSort(array2);

    System.out.print("First array sorted: ");
    System.out.println(Arrays.toString(array1));
    System.out.print("Second array sorted: ");
    System.out.println(Arrays.toString(array2));
}

/*
 * Selection sort takes in an array of integers and
 * returns a sorted array of the same integers.
 */
public static int[] selectionSort(int[] arr)
{
    int currentMinIndex;
    for (int i = 0; i < arr.length - 1; i++)
    {
        currentMinIndex = i;
        for (int j = i + 1; j < arr.length; j++)
        {
            if(arr[j] < arr[currentMinIndex])
            {
                currentMinIndex = j;
            }
        }

        // swap numbers if needed
        if (i != currentMinIndex)
        {
            int temp = arr[currentMinIndex];
            arr[currentMinIndex] = arr[i];
            arr[i] = temp;
            count++;
        }
    }
    // Print out the number of swaps that took place here
    // before returning arr
    System.out.println(count);
    return arr;
}
}

问题是,我需要 int count 在每个selectionSort后设置为零而不是继续添加,我找不到办法。

1 个答案:

答案 0 :(得分:0)

在每次迭代结束时将count设置为0.

System.out.println(count); count = 0; return arr;