0

需要将中值和标准偏差添加到以下程序中,但我不知道从哪里开始,我知道我想要它做什么,但不知道如何实现它,特别是因为中值必须在排序数字之后但是如果我将它作为 void Median () 放入,我会丢失已排序的数组。请帮忙!非常感谢任何帮助:

import java.util.Scanner;
import javax.swing.*;
public class JScannerO
{
    public JScannerO(){}
    public JScannerO(int A)
    {
        HowMuch = A;
    }
    void GenerateNumbers()
    {
        int k,Hide;
        k = 0;
        while ( k < HowMuch )
        {
            Hide = (int) (Math.random() * 100);
            if ( Hide > 9 && Hide < 100 )
            {
                Hanson[k] = Hide;
                k++;
            }
        }
    }
    void DisplayNumbers()
    {
        int k;
        for ( k = 0; k < HowMuch; k++)
        {
            System.out.println("\t\tThe numbers are : " + Hanson[k]);
        }
    }
    void BiggestNumber()
    {
        int k,Biggest;
        Biggest = Hanson[0];
        for ( k = 0; k < HowMuch; k++)
        {
            if ( Biggest < Hanson[k] ) Biggest = Hanson[k];
        }
        System.out.println("\n\n\t\tThe biggest number is : " + Biggest);
    }
    void SmallestNumber()
    {
        int k,Smallest;
        Smallest = Hanson[0];
        for ( k = 0; k < HowMuch; k++)
        {
            if ( Smallest > Hanson[k] ) Smallest = Hanson[k];
        }
        System.out.println("\n\n\t\tThe Smallest number is : " + Smallest);
    }
    void Average()
    {
        int k,Sum;
        double Average;
        Sum = 0;
        for ( k = 0; k < HowMuch; k++)
        {
            Sum = Sum + Hanson[k];
        }
        Average = 1.0 * Sum / HowMuch;
        System.out.format("\n\n\t\tThe Average number is : %7.2f",Average);
    }
    void Sort()
    {
        int k,Hide;
        boolean DidISwap;
        DidISwap = true;
        while (DidISwap)
        {
            DidISwap = false;
            for ( k = 0; k < HowMuch - 1; k++)
            {
                if ( Hanson[k] > Hanson[k+1] )
                {
                    Hide = Hanson[k ];
                    Hanson[k] = Hanson[k+1];
                    Hanson[k+1] = Hide ;
                    DidISwap = true;
                }
            }
        }
        System.out.println("\n\n\n\t\tThe Sorted Numbers : \n");
    }
    private int HowMuch;
    private int[] Hanson = new int[100];
}

这是通过使用调用程序运行的

4

1 回答 1

0

我不明白你的问题。

你有一个排序算法可以为你工作!

你就不能写一个

public int median() { 
  Sort();
  return Hanson[Math.floor(Hanson/2)]; 
}

?

这将花费您 O(N) 而不是 O(1),但它不容易出错并且可以执行您需要做的事情 - 特别是因为您的“Hanson”数组只有 100 大小,所以我们现在可以不在乎.

最后一点:函数名称总是以小驼峰命名,即它是 sort() 而不是 Sort(),它是 calculateSomething() 而不是 Calculate_Something() 或任何其他变体。

这条规则没有任何例外,这将使您的代码(更多)更具可读性。考虑在 Eclipse (http://eclipse-cs.sourceforge.net/) 中安装 CheckStyle,以便在您编写时获得交互式样式指南:-)

于 2012-10-26T02:04:45.533 回答