淘先锋技术网

首页 1 2 3 4 5 6 7

在Java中,可以通过一些算法来求一组数的中位数和众数。中位数是指将一个数据样本中所有数据按照从小到大的顺序排列后,处于中间位置的那个值;而众数则是指一组数中出现频率最高的数。

// 求中位数的代码
public static double median(int[] nums) {
Arrays.sort(nums);
int len = nums.length;
if (len % 2 == 0) {
return (nums[len/2 - 1] + nums[len/2]) / 2.0;
} else {
return nums[len/2];
}
}

上面这段代码将数组排序后,判断数组长度的奇偶性来确定中位数的位置并计算值。

// 求众数的代码
public static int mode(int[] nums) {
Mapmap = new HashMap<>();
int maxFreq = 0;
int mode = nums[0];
for (int num : nums) {
int freq = map.getOrDefault(num, 0) + 1;
map.put(num, freq);
if (freq >maxFreq) {
maxFreq = freq;
mode = num;
}
}
return mode;
}

上面这段代码使用哈希表统计数组元素出现的频率,然后遍历哈希表来找到出现频率最高的元素,即众数。

以上就是求一组数的中位数和众数的Java代码,希望能对您有所帮助。