[ Foro de Pascal ]

ordenar

03-Feb-2014 00:02
Invitado (eduardo95)
2 Respuestas

hola como estan, gracias por su ayuda.
queria preguntarles como podria realizar el planteamiento siguiente.
se trata de ordenar un vector de esta forma:
el menor valor se coloca en la primera posicion
se coloca antes del primer elemento si el valor es menor o igual al primer elemento del vector.
se coloca despues del ultimo elemento del arreglo si el valor es mayor o igual al valor del ultimo elemento del vector
en cualquier otro caso se inserta en la posicion central del tamaño del vector

gracias por su ayuda, yo se ordenar con el metodo de la burbuja vectores pero no se como hacer este tippo de ordenamientos , agradezco a quien pueda ayudarme.gracias y disculpen estoy aprendiendo.


03-Feb-2014 11:33
Invitado (eduardo95)

disculpen es que me equivoque escribiendo, la primera opcion del ordenamiento es :
como primer elemento se colocara el primero leido.
lo demas si esta correcto, gracias por cualquier ayuda.


03-Feb-2014 18:51
Nacho Cabanes (+83)

No entiendo lo que dices. Tal y como lo planteas, eso no ordena del todo.

Si te limitas a llevar a un lado los menores y a otro lado los mayores, tienes una "ordenación parcial". En esa idea se basa la "ordenación por montículos" (heapsort), por si quieres mirar más detalles sobre ese algoritmo para ver si es eso lo que pretendes. Por ejemplo, aquí tienes lo que dice la propia Wikipedia:

http://es.wikipedia.org/wiki/Heapsort

Si lo que haces volver a aplicar esa misma idea de forma recursiva a cada mitad del array original, estás aplicando la "ordenación rápida o de Hoare" (quicksort), de la que también podrás encontrar información con facilidad.

http://es.wikipedia.org/wiki/Quicksort






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)