Skip to main content

Buscando Los Tres Elementos Más Pequeños En Una Sola Pasada A Través De Una Matriz

Cuando se trabaja con matrices de datos en la programaci n, a veces es necesario encontrar algunos elementos m s peque os. Esto generalmente se hace ordenando la matriz y tomando los primeros elementos. Sin embargo, hay una manera de encontrar los tres elementos m s peque os en una sola pasada a trav s de una matriz sin ordenar.

El algoritmo consta de tres pasos:

  1. Inicializar las tres variables min1, min2 y min3 con valores "infinito".
  2. Recorra todos los elementos de la matriz y actualice los valores min1, min2 y min3 si el elemento actual es menor que el valor actual de una de las variables min.
  3. Despu s de pasar obtenemos las tres variables con los valores m s bajos.

Este enfoque le permite encontrar los tres elementos m s peque os en una sola pasada en una matriz, lo que acelera significativamente la ejecuci n del programa en comparaci n con ordenar la matriz y tomar los primeros tres elementos.

  1. Algoritmo para encontrar los tres elementos m s peque os
  2. Establecimiento de objetivos
  3. Soluci n por el m todo de una sola pasada en una matriz
  4. Ejemplo de algoritmo
  5. Pregunta-respuesta
  6. C mo encontrar los tres elementos m s peque os en una matriz?
  7. Qu algoritmo usar para encontrar los tres elementos m s peque os?
  8. Hay alguna manera de encontrar los tres elementos m s peque os en una sola pasada a trav s de una matriz?
  9. C mo encuentro los tres n meros m s peque os en una matriz sin usar la clasificaci n?

Algoritmo para encontrar los tres elementos m s peque os

Para encontrar los tres elementos m s peque os en una matriz en una sola pasada, debe ejecutar el siguiente algoritmo:

  1. Inicializar tres variables (min1, min2, min3) con valores que se garantiza que son m s grandes que todos los elementos de la matriz, por ejemplo, los valores m ximos del tipo de datos de la matriz.
  2. Repase todos los elementos de la matriz y compare cada elemento con los valores actuales de las variables min1, min2 y min3.
  3. Si el valor del elemento es menor que min1, a continuaci n, reasignar min3 = min2, min2 = min1, min1 = valor del elemento.
  4. Si el valor del elemento es mayor que min1 y menor que min2, reasignar min3= min2, min2 = valor del elemento.
  5. Si el valor del elemento es mayor que min2 y menor que min3, reasignar min3 = valor del elemento.
  6. Despu s de completar el recorrido de la matriz, las variables min1, min2 y min3 contendr n los tres elementos m s peque os.

Ejemplo de implementaci n de este algoritmo en JavaScript:

function findThreeSmallest(arr) {

let min1 = Number.MAX_SAFE_INTEGER;

let min2 = Number.MAX_SAFE_INTEGER;

let min3 = Number.MAX_SAFE_INTEGER;

for (let i = 0; i < arr.length; i++) {

if (arr[i] < min1) {

min3 = min2;

min2 = min1;

min1 = arr[i];

} else if (arr[i] > min1 && arr[i] < min2) {

min3 = min2;

min2 = arr[i];

} else if (arr[i] > min2 && arr[i] < min3) {

min3 = arr[i];

}

}

return [min1, min2, min3];

}

let numbers = [5, 2, 8, 1, 9, 3, 6];

let result = findThreeSmallest(numbers);

console.log(result); // [1, 2, 3]

[5, 2, 8, 1, 9, 3, 6] : 1, 2 3.

Establecimiento de objetivos

El desaf o es encontrar los tres elementos m s peque os en una matriz de n meros dada. Para resolver este problema, debe recorrer la matriz solo una vez.

Al resolver el problema, debe tener en cuenta las posibles opciones cuando la matriz puede ser:

  1. menos de tres elementos;
  2. exactamente tres elementos;
  3. m s de tres elementos.

Tambi n debe tener en cuenta que los elementos de la matriz pueden tener valores positivos y negativos, as como elementos repetitivos.

Como resultado, debe devolver los tres elementos m s peque os ordenados en orden ascendente.

Soluci n por el m todo de una sola pasada en una matriz

Para encontrar los tres elementos m s peque os en una matriz en una sola pasada, se puede usar el siguiente algoritmo:

  1. Inicializar tres variables para almacenar los tres elementos m s peque os.
  2. Recorra la matriz y en cada iteraci n compare el elemento actual de la matriz con las tres variables que almacenan los tres elementos m s peque os.
  3. Si el elemento actual es menor que la primera variable, actualizar las tres variables cambiando los valores.
  4. Si el elemento actual es mayor que la primera variable pero menor que la segunda variable, actualice la segunda y tercera variables.
  5. Si el elemento actual es mayor que la primera y la segunda variable, pero menor que la tercera variable, actualice solo la tercera variable.
  6. Despu s de recorrer toda la matriz, los elementos m s peque os encontrados se almacenar n en tres variables.

La ventaja de este enfoque es que la matriz se pasa solo una vez, por lo que el tiempo de ejecuci n del algoritmo es O(n), donde n es la longitud de la matriz.

Ejemplo de implementaci n de este algoritmo en Python:

def find_three_smallest_elements(arr):

if len(arr) < 3:

return " la Matriz debe contener al menos tres elementos."

smallest = arr[0]

second_smallest = arr[1]

third_smallest = arr[2]

para i en rango (3, len (arr)):

si arr [i] < menor:

third_smallest = second_smallest

second_smallest = m s peque o

m s peque o = arr[i]

elif arr [ i] < segundo_m s peque o:

third_smallest = second_smallest

second_smallest = arr[i]

elif arr [i] < tercero_m s peque o:

third_smallest = arr[i]

devuelve [m s peque o, segundo_m s peque o, tercero_m s peque o]

. Si la matriz contiene menos de tres elementos, la funci n devolver el mensaje de error correspondiente.

Ejemplo de algoritmo

Digamos que tenemos la siguiente matriz de n meros:

arr = [9, 5, 7, 2, 4, 1, 6, 8, 3]

Queremos encontrar los tres elementos m s peque os de esta matriz.

El algoritmo funciona de la siguiente manera:

  1. Inicializar tres variables: first, second y third con valores Infinity.
  2. Pasamos por cada elemento de la matriz.
  3. Si el elemento actual es menor que el valor de la variable first, actualizamos los valores de las variables first, second y third, respectivamente: third = second , second = first y first = elemento actual.
  4. Si el elemento actual es mayor que el valor de la variable first, pero menor que el valor de la variable second, actualizamos los valores de las variables second y third asign ndoles el valor del elemento actual.
  5. Si el elemento actual es mayor que el valor de la variable second, pero menor que el valor de la variable third, actualizamos el valor de la variable third en consecuencia.

Despu s de pasar por la matriz, los valores de las variables first, second y third contendr n los tres elementos m s peque os.

En nuestro ejemplo, despu s del trabajo del algoritmo, obtenemos los siguientes valores de variables:

first = 1

second = 2

third = 3

Por lo tanto, los tres elementos m s peque os de la matriz arr son 1, 2 y 3.

Pregunta-respuesta

C mo encontrar los tres elementos m s peque os en una matriz?

Para buscar los tres elementos m s peque os en una matriz, puede usar el algoritmo de pase a pase nico. El algoritmo consiste en recorrer una vez la matriz y en cada iteraci n comparar el elemento actual con los tres elementos m s peque os encontrados. Si el elemento actual es menor que al menos uno de ellos, entonces toma su lugar y los elementos restantes se desplazan en consecuencia. Al final del pase, las tres variables almacenar n los tres elementos m s peque os de la matriz.

Qu algoritmo usar para encontrar los tres elementos m s peque os?

Para buscar los tres elementos m s peque os en una matriz, puede usar el algoritmo de pase a pase nico. El algoritmo consiste en pasar una vez por la matriz y en cada iteraci n comparar el elemento actual con los tres elementos m s peque os encontrados. Si el elemento actual es menor que al menos uno de ellos, entonces toma su lugar y los elementos restantes se desplazan en consecuencia. Como resultado, el algoritmo almacenar los tres elementos m s peque os de la matriz en tres variables.

Hay alguna manera de encontrar los tres elementos m s peque os en una sola pasada a trav s de una matriz?

S , hay un algoritmo de "pase a pase" que le permite encontrar los tres elementos m s peque os en una sola pasada a trav s de una matriz. El algoritmo consiste en comparar el elemento actual con los tres elementos m s peque os encontrados en cada iteraci n del pase. Si el elemento actual es menor que al menos uno de ellos, entonces toma su lugar y los elementos restantes se desplazan en consecuencia. Como resultado de este paso, las tres variables almacenar n los tres elementos m s peque os de la matriz.

C mo encuentro los tres n meros m s peque os en una matriz sin usar la clasificaci n?

Para buscar los tres n meros m s peque os en una matriz sin usar la clasificaci n, puede usar el algoritmo "pase a pase". Al comienzo de una pasada, se pueden inicializar tres variables que almacenar n los tres n meros m s peque os. Luego, en cada iteraci n del pase, compare el elemento actual con esas variables. Si el elemento actual es menor que al menos uno de ellos, entonces toma su lugar y los n meros restantes se desplazan en consecuencia. Despu s del final de la pasada, las tres variables almacenar n los tres n meros m s peque os de la matriz.