题意整理。

  • 键盘随机输入6个整数,保存到数组中。
  • 求其中的最大值和最小值。

方法一(循环)

1.解题思路

  • 定义变量max_val记录最大值,变量min_val记录最小值。
  • 遍历整个数组,每轮循环中,记录最大值和最小值的变化。

动图展示: alt

2.代码实现

#include <iostream>
#include <algorithm>
using namespace std;

int main() {

    int arr[6] = { 0 };
    int len = sizeof(arr) / sizeof(int);
    
    for (int i = 0; i < len; i++) {
        cin >> arr[i];
    }

    //max_val记录最大值,min_val记录最小值
    //0x80000000是最小的32位整数,0x7FFFFFFF是最大的32位整数
    int max_val=0x80000000;
    int min_val=0x7FFFFFFF;
    
    //遍历整个数组
    for (int i = 0; i < len; i++) {
        min_val=min(min_val,arr[i]);
        max_val=max(max_val,arr[i]);
    }
    
    cout<<min_val<<" "<<max_val<<endl;

    return 0;
}

3.复杂度分析

  • 时间复杂度:需要遍历整个数组,所以时间复杂度为O(n)O(n)
  • 空间复杂度:需要额外常数级别的空间,所以空间复杂度为O(1)O(1)