输入若干整数 输出最小值和最大值
时间: 2023-09-10 11:11:06 浏览: 100
分治法求最大值和最小值
算法1:
1. 读入第一个整数,将其设为最小值和最大值;
2. 从第二个整数开始,若该整数比当前最小值小,则更新最小值,若该整数比当前最大值大,则更新最大值;
3. 重复步骤2,直到输入结束;
4. 输出最小值和最大值。
时间复杂度:$O(n)$,其中 $n$ 是输入的整数个数。
C++ 代码:
```cpp
#include <iostream>
using namespace std;
int main() {
int n, min_val, max_val;
cin >> n;
min_val = max_val = n;
while (cin >> n) {
if (n < min_val) min_val = n;
if (n > max_val) max_val = n;
}
cout << "最小值:" << min_val << endl;
cout << "最大值:" << max_val << endl;
return 0;
}
```
算法2:
1. 读入所有整数,存储在一个数组中;
2. 对数组进行排序,输出第一个和最后一个元素即为最小值和最大值。
时间复杂度:$O(n \log n)$,其中 $n$ 是输入的整数个数。
C++ 代码:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
const int MAXN = 1000; // 数组最大长度
int a[MAXN]; // 存储输入的整数
int main() {
int n, cnt = 0;
while (cin >> n) {
a[cnt++] = n;
}
sort(a, a+cnt);
cout << "最小值:" << a[0] << endl;
cout << "最大值:" << a[cnt-1] << endl;
return 0;
}
```
阅读全文