C++程序 在数组中查找最大元素

C++程序 在数组中查找最大元素

给定一个大小为 N 的数组 arr ,任务是查找给定数组中的最大元素。

示例:

输入: arr[]={10,20,4} 输出: 20

输入: arr[]={20,10,20,4,100} 输出: 100

方法1 – 线性遍历:

解决这个问题的最简单、最基本的方法之一是简单地遍历整个列表并找到其中的最大值。

按照以下步骤实现此想法:

  • 创建一个局部变量 max 以存储列表中的最大值
  • 最初将max初始化为第一个元素 ,以开始比较。
  • 然后 从第二个元素开始遍历 给定的数组,对于每个元素:
    • 将当前元素与max比较
    • 如果当前元素大于max,则 将max 的值替换为当前元素。
  • 最后, 返回 并打印存储在 max 中的数组中最大元素的值。

以下是上述方法的实现:

// C++ program to find maximum
// in arr[] of size n
#include <bits/stdc++.h>
using namespace std;
 
int largest(int arr[], int n)
{
    int i;
     
    // Initialize maximum element
    int max = arr[0];
 
    // Traverse array elements
    // from second and compare
    // every element with current max
    for (i = 1; i < n; i++)
        if (arr[i] > max)
            max = arr[i];
 
    return max;
}
 
// Driver Code
int main()
{
    int arr[] = {10, 324, 45, 90, 9808};
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "Largest in given array is " <<
             largest(arr, n);
    return 0;
}
 
// This Code is contributed by Shivi_Aggarwal```  

输出:

Largest in given array is 9808

时间复杂度: O(N),完全遍历数组。 辅助空间: O(1),只创建一个额外的变量,它将占用O(1)空间。

方法2:使用库函数:

大多数语言都有相关的 max() 类型内置函数来查找最大元素,例如C ++中的 std::max_element 。我们可以使用这个函数直接找到最大元素。

以下是上述方法的实现:

//上述方法的C++实现

# include <bits/stdc++.h>
using namespace std;

//使用递归函数找到最大元素
int largest(int *arr , int n , int i)
{
  //基本情况
  if (i == n-1) // 如果我们到达数组的最后一个元素
  {             // 返回该索引的值 
      return arr[i];
  }

  // 递归调用以查找最大元素
  return max( arr[i] ,largest( arr , n , i+1) );
  //它会返回arr[i]和arr[i+1]到arr[n-1]的最大值
}

// 主函数 
int main()
{
  int arr[] = {10, 324, 45, 90, 9808};
  int n = sizeof(arr)/sizeof(arr[0]);

  // 调用函数
  cout << largest(arr, n , 0);

  return 0;
}

// 此方法由 nikhilsainiofficial546 贡献```  

输出

9808

时间复杂度: O(N)

辅助空间: 由于递归调用,所以为 O(N)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例