Java实现:查找无序数组的中位数

本文提供了一个Java函数,用于查找给定无序数组的中位数。

**代码示例:**javaimport java.util.Arrays;

public class Main { public static void main(String[] args) { int[] nums = {5, 1, 3, 2, 4}; // 示例输入数组 double median = findMedian(nums); System.out.println(median); // 输出:3.0 } public static double findMedian(int[] nums) { Arrays.sort(nums); // 对数组进行排序 int length = nums.length; if (length % 2 == 1) { // 数组长度为奇数,直接返回中间值 return nums[length / 2]; } else { // 数组长度为偶数,返回中间两个数的平均值 int mid1 = nums[length / 2 - 1]; int mid2 = nums[length / 2]; return (double) (mid1 + mid2) / 2; } }}

代码解释:

  1. findMedian(int[] nums) 函数: - 接受一个整数数组 nums 作为输入。 - 首先使用 Arrays.sort(nums) 对数组进行排序。 - 然后,计算数组的长度 length。 - 使用条件语句判断数组长度的奇偶性: - 如果 length 是奇数,则中位数是排序后数组的中间元素,即 nums[length / 2]。 - 如果 length 是偶数,则中位数是排序后数组中间两个元素的平均值,即 (nums[length / 2 - 1] + nums[length / 2]) / 2。 - 最后,函数返回计算得到的中位数。

示例:

在上面的示例中,输入数组为 {5, 1, 3, 2, 4}。函数首先对数组进行排序,得到 {1, 2, 3, 4, 5}。由于数组长度为奇数,中位数是中间元素 3,因此函数返回 3.0

注意:

  • 示例输入数组已在代码中硬编码,您可以根据需要修改输入数组。- 代码中使用了 double 类型来存储和返回中位数,以处理偶数长度数组的情况,其中中位数可能是一个小数。
Java实现:查找无序数组的中位数

原文地址: http://www.cveoy.top/t/topic/CFe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录