Sunteți pe pagina 1din 19

Métodos de

Ordenación
Ordenar

Significa reagrupar o reorganizar un conjunto de


datos u objetos en una secuencia especifica.
2
Definición formal
➝ Sea A una Lista de N elementos:

A1, A2, A3, …, AN


➝ Ordenar significa permutar los
elementos de tal forma que
queden de acuerdo con una
distribución preestablecida.
3
Métodos de Ordenación
Ascendente Descendente

A1, < A2, < A3, < … < AN A1, > A2, > A3, > … > AN

AN A1
A2
A3 A3
A2
A1 AN
4
Burbuja
Intercambio Directo
El método de intercambio directo conocido
coloquialmente como burbuja es quizá el mas
utilizado por su fácil comprensión y
programación.

*Burbuja Menor
*Burbuja Mayor

La idea básica de este algoritmo consiste en


comparar pares de elementos adyacentes e
intercambiarlos entre si hasta que todos se
encuentren ordenados.
5
Burbuja Mayor
1 Repetir con i desde N – 1 Hasta 1

1.1 Repetir con j desde 1 Hasta i

1.1.1 si A[j] > A[j + 1] entonces

Hacer AUX <- A[j], A[j] <- A[j + 1] y A[j + 1] <- AUX

1.1.2 {Fin de la condicional del paso 1.1.1}

1.2 {Fin del ciclo del paso 1.1}

2 {Fin del ciclo del paso 1}


El algoritmo ordena los elementos del arreglo unidimensional A. Transporta en cada
pasada el elemento mas grande hacia la parte derecha del arreglo. A es un arreglo
de N elementos.
i, j, y AUX son variables de tipo entero 6
Baraja
Inserción directa
El método de ordenación por inserción directa
es el que utilizan generalmente los jugadores
de cartas cuando las ordenan, de ahí que a
este método se le conozca con el nombre de
baraja.
La idea central de este algoritmo consiste en
insertar un elemento del arreglo en su parte
izquierda, que ya se encuentra ordenada. Este
proceso se repite desde el segundo hasta el
n-ésimo elemento.

7
Inserción
1 Repetir con i desde 2 Hasta N

Hacer AUX <- A[i] Y K <- i-1

1.1 Mientras ((K > 1) y (AUX < A[K]) Repetir

Hacer A[K + 1] <- A[K] y K <- K-1

1.2 {Fin del ciclo del paso 1.1}

Hacer A[K +1] <- AUX

2 {Fin del ciclo del paso 1}


El algoritmo ordena los elementos del arreglo utilizando el método de inserción
directa. A es un arreglo de N elementos.
i, AUX y K son variables de tipo entero
8
Selección Directa
El método de ordenación por
selección directa es mas eficiente
que los métodos analizados
anteriormente. Pero, aunque su
comportamiento es mejor que el de
aquéllos y su programación es fácil
y comprensible no se recomienda
cuando el arreglo es mediano o
grande .

9
Selección
1 Repetir con i desde 1 Hasta N-1
Hacer MENOR <- A[i] Y K <- i
1.1 Repetir con J desde i + 1 hasta N
1.1.1 Si (A[J] < MENOR) entonces
Hacer MENOR <- A[J] y K <- J
1.1.2 {Fin del condicional del paso 1.1.1}
1.2 {Fin del ciclo del paso 1.1}
Hacer A[K] <- A[i] y A[i] <- MENOR
2 {Fin del ciclo del paso 1}

10
Quicksort P
Etapa 1
m M
La primera etapa en el algoritmo de partición es
obtener el elemento pivote; una vez que se ha
seleccionado, se ha de buscar el sistema para
situar en la sublista izquierda todos los elementos
menores que el pivote y en la sublista derecha
todos los elementos mayores que él.
Se ordena una lista de números enteros aplicando el
algoritmo quicksort, como pivote se elige el elemento central
de la lista.

11
Etapa 2
La etapa 2 requiere mover todos los elementos menores que el pivote
a la parte izquierda del array y los elementos mayores a la parte
derecha. Para ello, se recorre la lista de izquierda a derecha utilizando
un índice i que se inicializa a la posición más baja (inferior) buscando
un elemento mayor al pivote. También se recorre la lista de derecha a
izquierda buscando un elemento menor. Para hacer esto se utilizará un
índice j inicializado a la posición más alta (superior).

23 15 1 45 65 47 90

Menores Pivote Mayores


12
El índice i se detiene en el elemento 8 (mayor que el pivote) y el índice
j se detiene en el elemento 0 (menor que el pivote)

Ahora se intercambian 8 y 0 para que estos dos elementos se sitúen


correctamente en cada sublista; y se incrementa el índice i, y se
decrementa j para seguir los intercambios.

13
A medida que el algoritmo continúa, i se detiene en el elemento mayor,
9, y j se detiene en
el elemento menor, 2.

Se intercambian los elementos mientras que i y j no se crucen. En caso


contrario, se detiene este bucle. En el caso anterior, se intercambian 9
y2

14
Continúa la exploración y ahora el contador i se detiene en el elemento
6 (que es el pivote) y el índice j se detiene en el elemento menor 5.

Los índices tienen actualmente los valores i = 5, j = 5. Continúa la


exploración hasta que i > j , acaba con i = 6, j = 5.

15
En esta posición, los índices i y j han cruzado posiciones en el array.
Se detiene la búsqueda y no se realiza ningún intercambio, ya que el
elemento al que accede j está ya correctamente
situado. Las dos sublistas ya han sido creadas, la lista original se ha
dividido en dos particiones:

16
Conclusión
Los pasos que sigue el algoritmo quicksort son:
1.- Seleccionar el elemento central de a[] como pivote.
2.- Dividir los elementos restantes en particiones izquierda y
derecha, de modo que ningún elemento de la izquierda tenga una
clave (valor) mayor que el pivote y que ningún elemento a la derecha
tenga una clave menor que la del pivote.
3.- Ordenar la partición izquierda utilizando quicksort
recursivamente.
4.- Ordenar la partición derecha utilizando quicksort recursivamente.

17
18
Pseudocódigo

19

S-ar putea să vă placă și