在 Java 中查找未排序数组的平均值和中位数

javaobject oriented programmingprogramming更新于 2024/11/25 7:40:17

在 Java 中,数组是一个对象。它是一种非原始数据类型,用于存储类似数据类型的值。

根据问题陈述,我们必须在 Java 中找到未排序数组的平均值和中位数。

可以通过计算数组中所有元素的平均值来得出数组的平均值。

平均值=(数组中所有元素的总和)/(存在的元素总数)

数组的中位数表示奇数排序数组中存在的中间元素,如果排序数组由偶数组成,则可以通过计算中间两个数字的平均值来找出中位数。

让我们探索这篇文章,看看如何使用 Java 编程语言来实现它。

向您展示一些实例

实例-1

给定数组= [12, 23, 34, 45, 15]。

该数组的平均值= (12 + 23 + 34 + 45 + 15) / (5) = 129 / 5 = 25.8

给定数组的排序数组= [12, 15, 24, 34, 45]

由于这是一个奇数数组,因此中位数是中间元素。

中位数 = 24

实例-2

给定数组= [38, 94, 86, 63, 36]。

该数组的平均值= (38 + 94 + 86 + 63 + 36) / (5) = 317 / 5 = 63.4

给定数组的排序数组= [36, 38, 63, 86, 94]

由于这是一个奇数数组,因此中位数是中间元素。

中位数 = 63

实例-3

给定数组 = [54, 67, 23, 95, 24, 60]。

该数组的平均值 = (54 + 67 + 23 + 95 + 24 + 60) / (6) = 323 / 6 = 53.83

由于这是一个偶数数组,因此中位数是中间两个元素的平均值。

给定数组的排序数组 = [23, 24, 54, 60, 67, 95]

中位数 = (54 + 60) / 2 = 57

算法

  • 步骤 1 − 声明并初始化一个整数类型的数组。

  • 步骤 2 − 按升序对数组进行排序。

  • 步骤 3 − 在第一个用户定义的方法中,我们找到平均值。在第二个用户定义方法中,我们找到中位数。

  • 步骤 4 - 调用两个用户定义方法,并将数组和长度值作为参数传递。

  • 步骤 5 - 找到平均值和中位数后,将两个值打印为输出。

语法

要获取数组的长度(该数组中的元素数),数组有一个内置属性,即长度

下面引用它的语法 -

array.length

其中,"array"指的是数组引用。

您可以使用 Arrays.sort() 方法按升序对数组进行排序。

Arrays.sort(array_name);

多种方法

我们提供了不同方法的解决方案

  • 使用静态输入法

  • 使用用户输入法

让我们逐一查看程序及其输出。

方法 1:使用静态输入法

在这种方法中,我们通过静态输入法声明一个数组,并将该数组及其长度作为参数传递给用户定义的方法,然后在方法内部使用算法找到平均值和中位数。

示例

import java.util.*;
public class Main {
   public static void main(String args[]) {
      
        //声明一个整数类型数组并存储一些随机整数值
        int inputArray[] = { 23, 24, 65, 87, 85, 12, 76,21};
        
        //声明一个整数变量来存储给定数组的长度
        int len = inputArray.length;
        
        //调用用户定义的方法并打印输出
        System.out.println("给定数组的平均值 "+ Arrays.toString(inputArray)+ " is = " + mean(inputArray, len));
        System.out.println("给定数组的中位数 "+ Arrays.toString(inputArray) + " is = " + median(inputArray, len));
   }
    // 用户定义函数来查找平均值
    public static double mean(int arr[], int len)
    {
        //声明一个整数变量来存储给定数组元素的总和
        int sum = 0;
        
        //启动循环来计算给定数组所有元素的总和
        for (int i = 0; i < len; i++)
        sum += arr[i];
        
        //返回平均值
        return (double)(arr[(len - 1) / 2] + arr[len / 2]) / 2.0;
    }
   
   //用户定义函数来查找中值
   public static double median(int arr[], int len) {
        // 按升序对给定数组进行排序
        Arrays.sort(arr);
        // 检查给定数组是否由偶数或奇数个元素组成
        if (len % 2 != 0)
        {
        	return (double)arr[len / 2];
        }
        return (double)(arr[(len - 1) / 2] + arr[len / 2]) / 2.0;
   }
}

输出

给定数组 [23, 24, 65, 87, 85, 12, 76, 21] 的平均值 = 49.125
给定数组 [23, 24, 65, 87, 85, 12, 76, 21] 的中位数 = 44.5

方法 2:使用用户输入方法

在这种方法中,我们通过用户输入方法声明一个数组,并将该数组及其长度作为参数传递到用户定义的方法中,然后在方法内部使用算法我们可以找到平均值和中位数。

示例

import java.util.*;
public class Main {
   public static void main(String args[]) {
   
        //创建 Scanner 类的对象
        Scanner sc=new Scanner(System.in);
        
        //要求用户输入数组的长度
        System.out.print("输入元素数量:");
        
        //声明一个变量来存储长度
        int len=sc.nextInt();
        
        //声明一个给定长度的空数组
        int[] inputArray = new int[len];
        System.out.println("输入元素:");
        
        //启动循环以将元素存储到数组中
        for(int i=0; i < len; i++) {
        
            //将元素存储在数组顶部
            inputArray[i]=sc.nextInt();
        }
        
        //调用用户定义的方法并打印输出
        System.out.println("给定数组的平均值 "+ Arrays.toString(inputArray) + " is = " + mean(inputArray, len));
        System.out.println("给定数组 "+ Arrays.toString(inputArray) + " 的中位数是 = " + median(inputArray, len));
   }
   
    // 用户定义函数来查找平均值
    public static double mean(int arr[], int len) {
    
        //声明一个整数变量来存储给定数组元素的总和
        int sum = 0;
        
        //启动循环来计算给定数组所有元素的总和
        for (int i = 0; i < len; i++)
        sum += arr[i];
        
        //返回平均值
        return (double)sum / (double)len;
    }
   
    //用户定义函数来查找中位数
    public static double median(int arr[], int len) {
    
        // 按升序对给定数组进行排序
        Arrays.sort(arr);
        
        // 检查给定数组是否由偶数或奇数个元素组成
        if (len % 2 != 0){
            return (double)arr[len / 2];
        }
        System.out.println(arr[(len - 1)]);
        System.out.println(arr[(len - 1)]);
        return (double)(arr[(len - 1) / 2] + arr[len / 2]) / 2.0;
    }
}

输出

输入元素数量:8
输入元素:
2 5 3 7 1 6 8 4
给定数组 [2, 5, 3, 7, 1, 6, 8, 4] 的平均值 = 4.5
给定数组 [2, 5, 3, 7, 1, 6, 8, 4] 的中位数 = 4.5

在本文中,我们探讨了如何使用 Java 编程语言在未排序数组中查找数组的平均值和中位数。


相关文章


有用资源