El elemento más pequeño y más grande se puede encontrar en un solo recorrido de una matriz. i .e. en O (N). La idea es usar dos variables min y max que realicen un seguimiento del elemento mínimo y máximo encontrado hasta un índice particular en la matriz respectivamente. Inicialmente podemos inicializar min a un número grande arbitrario y max a un número menor. Luego, a medida que recorremos la matriz, si encontramos un elemento menor que min o mayor que max, podemos hacer un seguimiento de ellos y finalmente imprimir los resultados. A continuación se muestra el código C para el mismo
#include
#include // para INT_MIN e INT_MAX
int a [10000]; // matriz para almacenar los números
int main () {
int min, max, n, i;
min = INT_MAX; // almacenará el elemento mínimo
max = INT_MIN; // almacenará el elemento máximo
- Cómo obtener el bloque consecutivo más largo de elementos iguales dentro de un rango usando árboles de segmentos
- ¿Pueden los algoritmos de aprendizaje automático predecir el precio de las acciones en los mercados de valores?
- ¿Cuáles son las mejores pautas que una persona puede seguir para mejorar sus habilidades de resolución de problemas?
- ¿Qué es la generación procesal y la generación aleatoria? ¿Cuál es la diferencia y cómo se logra cada uno?
- ¿Qué algoritmo usar para encontrar una ganancia l1 óptima?
printf (“Ingrese el valor de n:”);
scanf (“% d”, & n);
printf (“Ingrese n números:”);
para (i = 0; i <n; i ++) {
scanf (“% d”, a + i);
si (a [i] <min)
min = a [i];
if (a [i]> max)
max = a [i];
}
printf (“Elemento mínimo =% d \ nElemento máximo =% d”, min, max);
devuelve 0;
}
Espero que ayude 🙂