#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
const int MAXRANGE = 1000;
int recursiveMinimum( const int [], int, int );
int main()
{
const int SIZE = 10;
int array[ SIZE ];
int smallest;
srand( time( 0 ) );
// 使用随机数初始化
for ( int loop = 0; loop < SIZE; loop++ )
array[ loop ] = 1 + rand() % MAXRANGE;
cout << "Array members are:\n";
for ( int k = 0; k < SIZE; k++ )
cout << setw( 5 ) << array[ k ];
cout << '\n';
smallest = recursiveMinimum( array, 0, SIZE - 1 );
cout << "\nSmallest element is: " << smallest << endl;
system("pause");
return 0;
}
int recursiveMinimum( const int array[], int low, int high )
{
static int smallest = MAXRANGE;
// 当数组“第一个”元素值比当前最小值还小时,交换
if ( array[ low ] < smallest )
smallest = array[ low ];
// 如果只有一个值,返回最小值,否则,递归
return low == high ?
smallest : recursiveMinimum( array, low + 1, high );
}
找出数组中的最小值--递归实现
最新推荐文章于 2023-01-29 11:52:02 发布