import java.util.*;
class Statistics {
public static double[] bubbleSort(double [] userNums){
double [] sortedNums = (double []) userNums.clone();
for(int i = 0;i < sortedNums.length; i ++){
for(int j = i + 1;j < sortedNums.length;j ++){
if(sortedNums[i] > sortedNums [j]){
double temp = sortedNums[i];
sortedNums[i] = sortedNums[j];
sortedNums[j] = temp;
}
}
}
return sortedNums;
}
public static double[] arrayFiller(){
double [] filledUserNums = new double [20];
for (int i = 0;i < 20; i++){
filledUserNums[i] = ((double) r.nextInt() % 100000) / 100;
}
return filledUserNums;
}
public static void arrayPrinter(double [] userNums){
double [] nums = bubbleSort(userNums);
System.
out.
println("For the array: "); for (int i = 0; i < nums.length; i ++){
System.
out.
print(nums
[i
] + ", "); }
}
public static void modePrinter(double [] userNums){
ArrayList<Double> printerArray = mode(userNums);
for (int i = 0; i < printerArray.size(); i ++){
System.
out.
print(printerArray.
get(i
) + ", "); }
}
public static double mean(double [] userNums){
double [] nums = bubbleSort(userNums);
int meanSum = 0;
for(int i = 0;i <= nums.length - 1;i++){
meanSum += nums[i];
}
meanSum /= nums.length;
return meanSum;
}
public static double median(double [] userNums){
double [] nums = bubbleSort(userNums);
if (nums.length % 2 != 0){
return nums[(nums.length - 1) / 2];
}
else{
return ((nums[(nums.length - 1) / 2] + nums[nums.length / 2]) / 2);
}
}
public static double range(double [] userNums){
double [] nums = bubbleSort(userNums);
double rangeNum = (nums[nums.length - 1]) - nums[0];
return rangeNum;
}
public static ArrayList<Double> mode(double [] userNums){
double [] nums = bubbleSort(userNums);
ArrayList
<Double
> maxValues
= new ArrayList <Double
> (); ArrayList
<Double
> listNums
= new ArrayList <Double
> (); int maxCount = 0;
int lastCount = 0;
for(int l = 0; l < nums.length; l ++){
listNums.add(nums[l]);
}
for (int i = 0; i < nums.length; i ++) {
int count = 1;
for (int j = 1 + i;j < nums.length; j ++) {
if (nums[j] == nums[i])
count ++;
}
if (count > maxCount) {
maxCount = count;
maxValues.add(nums[i]);
}
if (count > maxCount && count > lastCount){
maxCount = count;
maxValues.clear();
maxValues.add(nums[i]);
}
lastCount = count;
}
if (maxCount > 0)
return maxValues;
return listNums;
}
}