欢迎访问宙启技术站
智能推送

C++实现从数组中同时取出最大最小元素算法示例

发布时间:2023-05-17 08:07:29

从数组中取出最大最小元素是计算机中一个非常基本的操作,它在很多实际应用中都具有重要的作用。比如在图像处理中,寻找图像中最亮和最暗的像素点往往是非常关键的。本文将通过C语言实现从数组中同时取出最大最小元素的算法,以帮助读者掌握这一基础操作。

1. 算法描述

本算法实现的核心思想是一次遍历数组,同时记录当前的最大值和最小值。具体步骤如下:

1. 初始化最大值和最小值,分别为数组的 个元素;

2. 从数组的第二个元素开始遍历数组,若当前元素比最大值大,则更新最大值;若当前元素比最小值小,则更新最小值;

3. 遍历完整个数组后,最大值和最小值即为所求。

2. C语言实现

下面是该算法的C语言实现代码:

#include <stdio.h>

int main()
{
    int arr[] = {5, 2, 7, 1, 9, 3, 6, 4, 8};
    int len = sizeof(arr) / sizeof(int);
    int min = arr[0];
    int max = arr[0];

    for(int i = 1; i < len; i++)
    {
        if(arr[i] > max)
            max = arr[i];
        if(arr[i] < min)
            min = arr[i];
    }

    printf("最大值为:%d,最小值为:%d
", max, min);

    return 0;
}

代码中,我们先定义了一个整型数组arr,并通过sizeof运算符计算数组元素个数。在初始化最大值和最小值后,我们从数组的第二个元素开始遍历数组。若当前元素比最大值大,则将当前元素赋值给最大值;若当前元素比最小值小,则将当前元素赋值给最小值。最终,遍历完整个数组后,最大值和最小值即为所求。

3. 算法分析

该算法的时间复杂度为O(n),其中n为数组的元素个数。因为只需要一次遍历,所以其时间复杂度与数组长度成正比。空间复杂度为O(1),因为只需要存储两个变量——最大值和最小值。

4. 总结

本文介绍了从数组中同时取出最大最小元素的算法,并给出了该算法的C语言实现代码。读者在工作中,可以根据该算法灵活运用到各种场合中,提高自己的工作效率。