elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Algoritmo, WTF!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Algoritmo, WTF!  (Leído 2,164 veces)
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.704


WOS & Khan & Calero LDN


Ver Perfil WWW
Algoritmo, WTF!
« en: 24 Mayo 2011, 16:15 »

En clase de programación, nos explicaron algunos métodos para ordenar elementos y uno de estos fue el siguiente: -No lo terminamos porque no sabíamos como realmente era-

Suponiendo que tengo el siguiente vector: 1,3,5,10,20 y quiero ingresar el número 22.
Además de que las variables:
  TV = TotalValores, que en este casi son 5.
  A = vector
  VALIN = Valor a ingresar
No logro entender como hacerlo,...

Código
  1. PROCEDIMIENTO insertar_ordenado( TV, A, VALIN )
  2.  l = 1
  3.  MIENTRAS ( l <= TV ) && ( VALIN > A[l] )
  4.    l = l + 1
  5.  FIN MIENTRAS
  6.  
  7.  TV = TV + 1
  8.  
  9.  PARA K = TV; l + 1; -1 HACER
  10.    A[k] = A[k-1]
  11.  FIN PARA
  12.  
  13.  A[l] = VALIN
  14.  
  15. FIN


« Última modificación: 24 Mayo 2011, 17:08 por Shell Root » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
pucheto

Desconectado Desconectado

Mensajes: 215


Ver Perfil
Re: Algoritmo de ordenamiento, WTF!
« Respuesta #1 en: 24 Mayo 2011, 16:27 »

No es un algoritmo de ordenamiento...
Es un algoritmo para insertar ordenado en un vector.

*Busca la posicion donde va a meter a 'VALIN' (justo detras del primer elemento mayor q VALIN, los anteriores son menores q VALIN).
*Agranda el vector en 1.
*Corre todos los elementos mayores que VALIN 1 posicion hacia adelante.
*Inserta VALIN en la posicion que le corresponde.


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.704


WOS & Khan & Calero LDN


Ver Perfil WWW
Algoritmo, WTF!
« Respuesta #2 en: 24 Mayo 2011, 17:07 »

Tienes razón XD

Pero, a ver... Hago hasta donde terminar el primer MIENTRAS, incremento la variable TV y ya me pierdo...
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Algoritmo, WTF!
« Respuesta #3 en: 24 Mayo 2011, 20:29 »

busca sobre insertion sort. Lo que hace es a una matriz ordenada, buscar su lugar, hacerle un "espacio" moviendo todos los elementos restantes....
Y poniendo el elem en su lugar
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.704


WOS & Khan & Calero LDN


Ver Perfil WWW
Re: Algoritmo, WTF!
« Respuesta #4 en: 24 Mayo 2011, 23:59 »

Sí eso lo sé, tampoco soy tan principiante.
Pero mi duda es, si el elemento que ingreso DEBE ser el último, porque mueve los otros elementos?
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Algoritmo, WTF!
« Respuesta #5 en: 25 Mayo 2011, 00:22 »

Si es el ultimo, tecnicamente L deberia ser mayor a TV y ni entraria al bucle, simplemente lo agregaria :)
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.704


WOS & Khan & Calero LDN


Ver Perfil WWW
Re: Algoritmo, WTF!
« Respuesta #6 en: 25 Mayo 2011, 05:38 »

Pero a ver, supongamos que tenemos este vector
Código
  1. 1,3,5,8,11

Ahora antes del primer ciclo, las variables quedan así,
Código
  1. l TV VALIN
  2. 1 5 12

Cuando se entra en el ciclo, finalmente quedan así,
Código
  1. l TV VALIN
  2. 1 5 12
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6

Hasta aquí, vamos bien, ahora incrementó la variable TV en 1,
Código
  1. TV = 6

Aquí es donde me pierdo, entra el ciclo con las siguientes valores,
Código
  1. PARA K = TV; l + 1; -1 HACER
  2. PARA 6; 7; -1 HACER

Se supone que debe de ingresar al vector, y decrementar 7 a 6, aquí es donde pararía?
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
dakomt

Desconectado Desconectado

Mensajes: 76


Viking Metal


Ver Perfil
Re: Algoritmo, WTF!
« Respuesta #7 en: 27 Mayo 2011, 01:17 »



Aquí es donde me pierdo, entra el ciclo con las siguientes valores,
Código
  1. PARA K = TV; l + 1; -1 HACER
  2. PARA 6; 7; -1 HACER

Se supone que debe de ingresar al vector, y decrementar 7 a 6, aquí es donde pararía?

No exactamente. en ese bucle l+1 es una constante, no se decrementará nunca. El valor que se va decrementando es K. Es decir Ahora K vale 6... lo vamos decrementando hasta que  K = l +1, es decir, mientras K >= l +1.

Pero como K < l +1 la condición no se cumple y ese bucle no llega a ejecutar ninguna iteración.

« Última modificación: 27 Mayo 2011, 01:20 por dakomt » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Algoritmo
Ejercicios
Sainshaca 2 2,865 Último mensaje 22 Abril 2010, 05:14
por Sainshaca
Algoritmo
Criptografía
Mafmaestro 3 2,652 Último mensaje 24 Abril 2011, 17:24
por APOKLIPTICO
Algoritmo
Programación C/C++
georginho30 7 641 Último mensaje 5 Noviembre 2020, 00:44
por K-YreX
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines