一维数组最大值 减治法 c++ 代码
时间: 2024-10-14 15:13:17 浏览: 37
Max.rar_MPI 最大值_mpi二维数组
在一维数组中找到最大值的一种常见方法是使用分治算法,也称为递归搜索。这种方法将数组划分为两部分,然后分别查找每部分的最大值,最后比较两个部分的最大值并返回较大的那个。以下是使用 C++ 实现的简单代码:
```cpp
#include <iostream>
int findMax(int arr[], int low, int high) {
// Base case: 如果只有一个元素,那就是最大值
if (low == high)
return arr[low];
// 中间位置
int mid = (low + high) / 2;
// 分别查找左半部分和右半部分的最大值
int leftMax = findMax(arr, low, mid);
int rightMax = findMax(arr, mid + 1, high);
// 返回左右两边最大值中的较大者
return (leftMax > rightMax) ? leftMax : rightMax;
}
// 主函数示例
int main() {
int arr[] = {10, 5, 20, 15, 30};
int n = sizeof(arr) / sizeof(arr[0]);
int maxVal = findMax(arr, 0, n - 1);
std::cout << "Array maximum value is: " << maxVal << std::endl;
return 0;
}
```
在这个代码中,`findMax` 函数是一个递归函数,它接收数组、起始索引 `low` 和结束索引 `high` 作为参数。在主函数 `main` 中,我们创建了一个一维数组,并调用 `findMax` 来获取最大值。
阅读全文