查找数组的最大值

sar*_*aya 1 c++ arrays recursion max dynamic-arrays

例如:

array[] = {3, 9, 10, **12**,1,4,**7**,2,**6**,***5***}
Run Code Online (Sandbox Code Playgroud)

首先,我需要最大值= 12然后我需要数组的其余部分(1,4,7,2,6,5)中的最大值,所以值= 7,然后是数组6的其余部分的最大值,然后是5,在那之后,我将需要一系列这个值.这回馈(12,7,6,5).

如何获得这些数字?我尝试了下面的代码,但它似乎无限,我想我需要一个递归函数,但我怎么能这样做?

max=0; max2=0;...
   for(i=0; i<array_length; i++){

             if (matrix[i] >= max)
                max=matrix[i];

             else {
                  for (j=i; j<array_length; j++){

                      if (matrix[j] >= max2)
                      max2=matrix[j];

                      else{
                       ...
                        ...for if else for if else
                         ...??
                      }
                  }
             }
         }
Run Code Online (Sandbox Code Playgroud)

And*_*owl 5

这是通过使用std::max_element()标准算法在C++ 11中执行此操作的方法:

#include <vector>
#include <algorithm>
#include <iostream>

int main()
{
    int arr[] = {3,5,4,12,1,4,7,2,6,5};

    auto m = std::begin(arr);
    while (m != std::end(arr))
    {
        m = std::max_element(m, std::end(arr));
        std::cout << *(m++) << std::endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是一个实例.