Use la recursividad para encontrar el elemento más grande en una matriz de enteros en C++ (súper flexible y práctico)

prefacio

Recientemente, estoy aprendiendo algoritmos. La parte de implementación del código en el libro que leí es demasiado simple para entenderla completamente. Es más efectivo escribirlo yo mismo.
Este código contiene un algoritmo recursivo y llama al método de matriz de generación de números aleatorios, que creo que es bastante simple y efectivo. La combinación de los dos optimiza la eficiencia de entrada y la eficiencia de ejecución.

código completo

#include<iostream>
#include<ctime>  //包含随机数生成函数的两个头文件,组合使用
#include<cstdlib>
using namespace std;

//实现的递归算法
int fmax(int a[], int n) {
    
    
	int max;
	if (n == 1)
		return a[0];
	
	else
		max = fmax(a, n - 1);   //递归调用的核心,将n个数转化为n-1个数比大小,拆解问题
	return max > a[n - 1] ? max : a[n - 1];   //三目运算符a>b ? c:d 如果a>b输出c,小于输出d
}

int main() {
    
    
	cout << "请输入数组元素的个数:";
	int n, m, a[100];//定义数组长度,最长为100
	cin >> n;

	//随机数生成
	cout << "自动生成随机数" << n << "个" << endl;
	srand((int)time(NULL));
	for (int i = 0; i < n; i++) {
    
    
		m = rand() % 100;  //将100以内的随机数赋值给 m
		a[i] = m;    //将 m 存入数组a[]
		cout << a[i] << " ";   //输出存放在数组下随机数生成的值
	}
	cout << endl;    //为美观而换行
	cout << "随机数中最大的数为:" << fmax(a, n) << endl;  //调用递归方法寻找最大元素
	
	system("pause");
}

resultado de la operación

1. Admite la entrada de 100 números aleatorios de dos dígitos para encontrar el elemento más grande
inserte la descripción de la imagen aquí
2. Si desea más de 100 números aleatorios, puede cambiar la longitud de la matriz a
inserte la descripción de la imagen aquí
150 números aleatorios de la siguiente manera
inserte la descripción de la imagen aquí

Resumir

1. Una llamada recursiva es una función que se llama a sí misma, que incluye dos partes: recursiva y retorno. Cuando la escala del problema se divide gradualmente, el resultado no se calcula. Cuando el tamaño del problema refinado alcanza el mínimo, el cálculo se inicia desde el problema más pequeño y el resultado del cálculo se lleva al problema anterior. Es algo similar al método de inversión matemática, en el que la solución del proceso se deduce de una única solución al resolver.

2. El algoritmo recursivo se usa con mucha frecuencia y el principio es relativamente simple.La pila del sistema se usa para asignar espacio para el proceso de la función descompuesta y, finalmente, el espacio se libera gradualmente.

Supongo que te gusta

Origin blog.csdn.net/weixin_52248428/article/details/127290709
Recomendado
Clasificación