酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

C++实现找出数组中的最小值和次小值

### 🌟思路分析 要找出数组中的最小值和次小值,可以先将最小值和次小值初始化为一个较大的数(这里使用 `INT_MAX`),然后遍历数组,依次比较每个元素与当前最小值和次小值的大小关系,更新最小值和次小值。 ### 💻代码实现 ```cpp #include <iostream> #include <climits> int main() { int n; std::cin >> n; int min1 = INT_MAX; // 最小值 int min2 = INT_MAX; // 次小值 for (int i = 0; i < n; ++i) { int num; std::cin >> num; if (num < min1) { min2 = min1; min1 = num; } else if (num < min2 && num != min1) { min2 = num; } } std::cout << min1 << " " << min2 << std::endl; return 0; } ``` ### 📝代码解释 1. **初始化最小值和次小值**:使用 `INT_MAX` 初始化 `min1` 和 `min2`,确保初始值足够大,以便后续比较。 2. **遍历数组**:通过 `for` 循环读取数组中的每个元素。 3. **更新最小值和次小值**: - 如果当前元素小于 `min1`,则将 `min1` 更新为当前元素,并将原来的 `min1` 值赋给 `min2`。 - 如果当前元素大于等于 `min1` 且小于 `min2`,并且不等于 `min1`,则将 `min2` 更新为当前元素。 4. **输出结果**:最后输出 `min1` 和 `min2`。 ### ⚙️复杂度分析 - **时间复杂度**:$O(n)$,其中 $n$ 是数组的长度。因为只需要遍历数组一次。 - **空间复杂度**:$O(1)$,只使用了常数级的额外空间。 ### 🎯开发建议 - **错误处理**:可以添加对输入的合法性检查,例如检查 `n` 是否小于 100。 - **代码可读性**:可以添加注释来提高代码的可读性,特别是在更新最小值和次小值的部分。 ######[AI写代码神器 | 556点数解答 | 2026-05-09 20:45:37]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]