簡體   English   中英

Java數組標准偏差和中位數

[英]Java Array Standard Deviation and Median

需要在以下程序中添加中位數和標准差,但是我不知道從哪里開始,我知道我想要做什么,但是不確定如何實現它,特別是因為中位數必須在已排序的數字之后,但是如果我將其放入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];
}

這是通過使用調用程序運行

我不明白你的問題。

那里有一個排序算法可以為您完成工作!

你不能只寫一個

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

這將使您花費O(N)而不是O(1),但是它不容易出錯,並且可以滿足您的需要-特別是因為“ Hanson”數組的大小只有100,所以我們現在不在乎。

最后一點:函數名稱總是在較低的camelCase中,即它是sort()而不是Sort(),它是calculateSomething()而不是Calculate_Something()或任何其他變體。

此規則沒有例外,這會使您的代碼(很多)更具可讀性。 考慮在Eclipse(http://eclipse-cs.sourceforge.net/)中安裝CheckStyle,以便在編寫時具有交互式的樣式指導:-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM