写个c++程序,用递归法求长度为n的一维数组的最小元素值
时间: 2024-02-21 11:58:59 浏览: 111
以下是使用递归法求长度为n的一维数组的最小元素值的C++程序:
```cpp
#include <iostream>
using namespace std;
int findMin(int arr[], int n) {
if (n == 1)
return arr[0];
return min(arr[n-1], findMin(arr, n-1));
}
int main() {
int arr[] = {5, 3, 8, 1, 9};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "The minimum element in the array is: " << findMin(arr, n);
return 0;
}
```
在这个程序中,`findMin`函数使用递归来计算最小元素值。当数组长度为1时,函数返回数组中唯一的元素值。否则,函数返回数组中最后一个元素和数组前n-1个元素的最小值。在`main`函数中,我们声明了一个整型数组,并使用sizeof运算符计算数组长度。然后,我们调用`findMin`函数来计算最小元素值,并将其打印到控制台上。
相关问题
用递归法求数组中最小元素
以下是使用递归法求一维数组中最小元素的C++程序:
```cpp
#include <iostream>
using namespace std;
int findMin(int arr[], int start, int end) {
if (start == end)
return arr[start];
int mid = (start + end) / 2;
int leftMin = findMin(arr, start, mid);
int rightMin = findMin(arr, mid + 1, end);
return min(leftMin, rightMin);
}
int main() {
int arr[] = {5, 3, 8, 1, 9};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "The minimum element in the array is: " << findMin(arr, 0, n-1);
return 0;
}
```
在这个程序中,`findMin`函数使用递归来计算最小元素值。它接收一个数组、一个起始索引和一个结束索引作为参数。当起始索引和结束索引相等时,函数返回数组中唯一的元素值。否则,函数使用二分法将数组划分为两部分,并递归计算左半部分和右半部分的最小值。最后,函数返回左半部分和右半部分的最小值中的较小值。
在`main`函数中,我们声明了一个整型数组,并使用sizeof运算符计算数组长度。然后,我们调用`findMin`函数来计算最小元素值,并将其打印到控制台上。
阅读全文