鱼弦:公众号【红尘灯塔】,优快云博客专家、内容合伙人、新星导师、全栈领域优质创作者 、51CTO(Top红人+专家博主) 、github开源爱好者(go-zero源码二次开发、游戏后端架构 https://github.com/Peakchen)
本项目旨在实现查找众数及中位数的算法,并提供 Java、JavaScript、Python、C 和 C++ 版本的完整代码、详细解释和测试方案。
问题描述
1. 查找众数
给定一个非空数组,找到出现次数最多的元素。如果存在多个众数,可以输出任意一个。
2. 查找中位数
给定一个非空数组,将其由小到大排序,找到位于数组中间位置的元素。如果数组长度为偶数,则取中间两个元素的平均值作为中位数。
算法实现
1. 查找众数
1.1 哈希表法
原理: 利用哈希表来记录每个元素出现的次数,时间复杂度为 O(n),空间复杂度为 O(n)。
Java 代码:
import java.util.HashMap;
import java.util.Map;
public c