Título: AYUDA CON UN CODIGO Publicado por: cimli1996 en 27 Febrero 2023, 08:51 am Holaa! soy nueva en este foro y tambien programando, necesito ayuda con un codigo, en realidad es nada mas una parte de el porque lo demas ya lo pude hacer. Seria lo siguiente, que al ingresar numeros a partir del 0 el programa me devuelva el tercer valor mas bajo, por ejemplo: si las entradas son 4, 5, 8, 17, 24, 23, 1, el primer valor mas bajo seria el 1, luego el segundo el 4 y por ultimo y tercero el 5 el cual necesito imprimir. Sugerencias ? O si me podrian guiar como hacerlo estaria muy agradecida :)
Título: Re: AYUDA CON UN CODIGO Publicado por: MCKSys Argentina en 27 Febrero 2023, 09:01 am Hola!
Necesitas mostrar tus avances y hacer preguntas específicas, para que podamos ayudarte. Saludos! Título: Re: AYUDA CON UN CODIGO Publicado por: Serapis en 28 Febrero 2023, 18:12 pm Siempre debes poner código donde tienes problemas, sea por un error o porque tienes dudas sobre como resolverlo o lo resuelves pero quieres ver si es posible hacerlo más eficiente...
Cuando la lista es grande y será consultado muchas veces, lo más rentable es ordenar la lista, array, ...luego el acceso al tercero, décimo primero, etc... tarda nada. Si la lista es muy pequeña y siempre vas a necesitar buscar el tercero... lo más evidente (pero no lo más óptimo), es recorrer la lista 3 veces: 1 - buscas el menor de la lista: si elemento(x) es menor que minActual; minActual = elemento(x) Al término de ese bucle: hallazgo =minActual 2 - buscar de nuevo el menor de la lista, pero ahora se exige que además deba ser mayor que hallazgo. Si hay valores repetidos, el código hay que retocarlo. 3 - Igual que el punto 2... de hecho, tras el primer paso, el paso 2 y 3 pueden ser un bucle para buscar el enésimo. Cuando la lista es muy grande, todavía es más rápido recorrerla 3 veces, que ordenarla, pero ... puede resolverse en sólo 1 recorrido. A - Creas un array de 3 elementos, inicialmente les estableces el mayor valor posible que pueda tener la lista (esto es, según el tipo de datos) B - Se empieza a buscar en un bucle: si elemento(x) es menor que minActual; minActual = elemento(x) TresMin(0) = TresMin(1) TresMin(1) = TresMin(2) TresMin(2) = minActual Fin si Devolver TresMin(0) Fin función |