我不知道如何为bubbleSort java定义变量

时间:2015-06-28 19:40:43

标签: java arrays mean bubble-sort median

我正在制作一个porgram,计算均值(返回为double),Median(返回为double),Mode(返回为int),以及我自己选择的数组的标准偏差。我能找到的最有用的东西是代码,其中数组是用户输入的。

我一直在使用这个和其他一些类似于this guide以及我的书和课堂笔记。有些事我只是在修补它们,直到它们以某种方式工作。

但就像我说的那样,在我的代码中,我只想将数组放入自己,而不是从用户那里收集输入。我被困在中位数。我把它全部打了,但编译器抛出了一个错误,上面写着:

发现

1错误: 文件:C:\ Users \ Cori \ Desktop \ Statistics.java [line:41] 错误:方法bubbleSort(int [])未定义类型Statistics

我做了bubbleSort,就像链接一样,我一直在尝试各种疯狂的东西。我想也许它与未定义的变量有关,但我真的不知道,因为这对我来说都是非常陌生的。到目前为止,这是我的整个代码。我觉得如果我能想到这一点,我的项目的其余部分将非常容易。

  public class Statistics {
    public static void main(String[] args) {
        int[] a = { 22, 44, 66, 55, 33 };

        double mean;
        double median;
        median = calcMed(a);
        mean = calcMean(a);
        System.out.println("Median:" + median);
        System.out.println("Mean:" + mean);
    }

    public static double calcMean(int[] a) {
        // int[]array = {22,44,66,55,33};
        int i;// =0;
        int sum = 0;
        double mean = 0;
        for (i = 0; i < a.length; i++) {
            System.out.println(a[i]);
            sum = sum + a[i];
        }
        {
            mean = ((double) sum / ((double) a.length));
            System.out.println();
        }
        {
            return mean;
        }
    }

    // Calulate median
    public static double calcMed(int[] a) {
        int i;
        int sum = 0;
        int[] sortedArr = bubbleSort(a);

        double median = 0;
        {
            int index = (sortedArr.length - 1) / 2;
            median = sortedArr[index];
        }
        for (int v : sortedArr) {
            System.out.println(v);
        }
        return median;
    }
}

请不要欺骗我的格式(只是一些提示会很好)。我只需要知道如何修复bubbleSort所以我可以计算中位数。另外我知道有些事情是不必要的,所以如果你也可以给我一些关于什么可以删除以及可能更容易的事情的指示。

我明白了。

1 个答案:

答案 0 :(得分:1)

您错过了bubbleSort方法(从相关链接中复制):

/**
 * This program returns a sorted version of the input array.
 * 
 * @param arr
 * @return
 */
public static int[] bubbleSort(int[] arr)
{
    // We must sort the array.  We will use an algorithm called Bubble Sort.
    boolean performedSwap = true;
    int tempValue = 0;

    // If we performed a swap at some point in an iteration, this means that array
    // wasn't sorted and we need to perform another iteration
    while(performedSwap)
    {
        performedSwap = false;

        // Iterate through the array, swapping pairs that are out of order.
        // If we performed a swap, we set the "performedSwap" flag to true
        for (int i=0; i < arr.length; i++)
        {
            if (arr[i] > arr[i+1])
            {
                tempValue = arr[i];
                arr[i] = arr[i+1];
                arr[i+1] = tempValue;

                performedSwap = true;
            }
        }
    }

    return arr;
}

如果没有这种方法,你就无法对数组进行排序(有更好的解决方案,然后是bubblesort,但对于这种情况,确定)。
错误:

  找不到<1>错误:文件:C:\ Users \ Cori \ Desktop \ Statistics.java [line:41]   错误:类型未定义方法bubbleSort(int [])   统计

告诉您缺少参数bubbleSort()

的方法int[]