C/C++ 每日一练:查找数组中的最大和最小元素

前言

        编程中,查找数组中的最大和最小元素,是一个常见且基础的编程问题,可以帮助理解数组的遍历、条件判断等基本操作。

题目要求

        编写一个程序,接收一个包含整数的数组,并输出该数组中的最大值和最小值。

  • 输入:一个整数数组和数组的长度
  • 输出:数组中的最大和最小元素

做题思路

  1. 定义初始值:先假设数组的第一个元素为最大值或最小值。
  2. 遍历数组:从第二个元素开始,逐一将每个数组元素和之前遍历到最大值或最小值比较。
  3. 更新最大/最小值:如果当前元素大于假设的最大值,则更新最大值;如果当前元素小于假设的最小值,则更新最小值。
  4. 输出结果:遍历完成后,输出最终找到的最大值和最小值。

过程解析

  1. 遍历数组:使用for循环逐一访问每个元素。
  2. 条件判断:使用if条件语句比较当前元素与当前的最大值和最小值。
  3. 时间复杂度:O(n),其中n是数组的长度,因为只需要遍历数组一次。
  4. 空间复杂度:O(1),不需要额外空间,仅需要两个变量来保存最大值和最小值。

使用到的知识点

  • 数组:存储和操作多个相同类型的数据。
  • 循环:遍历数组的所有元素。
  • 条件语句:判断大小并更新最大值和最小值。
  • 时间复杂度:计算算法效率的重要指标。

示例代码

        C语言实现
#include <stdio.h>

void findMaxMin(int arr[], int length) {
    // 初始化最大值和最小值为数组的第一个元素
    int max = arr[0];
    int min = arr[0];

    // 遍历数组,从第二个元素开始
    for (int i = 1; i < length; i++) {
        if (arr[i] > max) {
            max = arr[i]; // 更新最大值
        }
        if (arr[i] < min) {
            min = arr[i]; // 更新最小值
        }
    }

    // 输出最大值和最小值
    printf("数组中的最大值是: %d\n", max);
    printf("数组中的最小值是: %d\n", min);
}

int main() 
{
    // 示例数组
    int arr[] = {23, 5, 67, 12, 87, 34, -10, 55};
    int length = sizeof(arr) / sizeof(arr[0]);

    // 调用查找函数
    findMaxMin(arr, length);

    return 0;
}
C++实现
#include <iostream>
using namespace std;

void findMaxMin(int arr[], int length) {
    // 初始化最大值和最小值为数组的第一个元素
    int max = arr[0];
    int min = arr[0];

    // 遍历数组,从第二个元素开始
    for (int i = 1; i < length; i++) {
        if (arr[i] > max) {
            max = arr[i]; // 更新最大值
        }
        if (arr[i] < min) {
            min = arr[i]; // 更新最小值
        }
    }

    // 输出最大值和最小值
    cout << "数组中的最大值是: " << max << endl;
    cout << "数组中的最小值是: " << min << endl;
}

int main() 
{
    // 示例数组
    int arr[] = {23, 5, 67, 12, 87, 34, -10, 55};
    int length = sizeof(arr) / sizeof(arr[0]);

    // 调用查找函数
    findMaxMin(arr, length);

    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_60461563/article/details/143026238