Tzitziki Ramirez Gonzalez - PowerPoint PPT Presentation

1 / 9
About This Presentation
Title:

Tzitziki Ramirez Gonzalez

Description:

Title: PowerPoint Presentation Author: Tzitziki Ramirez Gonzalez Last modified by: MCC Created Date: 6/14/2003 3:52:12 AM Document presentation format – PowerPoint PPT presentation

Number of Views:65
Avg rating:3.0/5.0
Slides: 10
Provided by: TzitzikiR
Category:

less

Transcript and Presenter's Notes

Title: Tzitziki Ramirez Gonzalez


1
UNIVERSIDAD AUTONOMA METROPOLITANA
QUICKSORT METODO DE ORDENAMIENTO
Tzitziki Ramirez Gonzalez
Estructuras de Datos
2
Ordenamiento por intercambio de partición
  • Sea x un arreglo y n el numero de elementos en el
    arreglo que debe de ser ordenado. Elegir un
    elemento a de una posicion especifica en el
    arreglo, bien podria ser la primera x0.
  • Suponiendo que a se encuentra en la posicion j
    se deben de cumplir las siguientes condiciones
    que deben cumplirse son
  • Cada uno de los elementos de la posicion 0 a j-1
    es menor o igual a a .
  • Cada uno de los elemento en las posiciones j1 a
    n-1 es mayor o igual que a.

Estructuras de Datos
3
Ordenamiento por intercambio de partición
Si el arreglo inicial es 25 57 48 37 12 92
86 33 Y el primer elemento( 25 ) se coloca en
su posicion correcta tenemos 12 25 57 48 37
92 86 33 Como arriba de la posicion de( 25 )
todos son mayores que 25 y en las posiciones
inferiores son menores, ( 25 )esta en la posicion
correcta. 12 25 ( 57 48 37 92
86 33 ) Para ordenar el segundo subarreglo se
repite el proceso y se vuelve a subdividir.
Estructuras de Datos
4
Ordenamiento por intercambio de partición
  • 12 25 ( 48 37 33 ) 57 ( 92 86 )
  • 12 25 ( 37 33 ) 48 57 ( 92 86 )
  • 12 25 ( 33 ) 37 48 57 ( 92 86 )
  • 12 25 33 37 48 57 ( 92 86 )
  • 12 25 33 37 48 57 ( 86 ) 92
  • 12 25 33 37 48 57 86 92
  • En la ultima linea podemos observar que el
    arreglo ya ha sido ordenado.

Estructuras de Datos
5
Recursividad
Es definir algo en terminos de si
mismo. Cualquier caso de definicion recursiva o
invocacion de un algoritmo recursivo tiene que
reducirse a la larga a alguna manipulacion de uno
o varios casos mas simples no recursivos. Un
requisito importante para que sea correcto un
algoritmo recursivo es que no genere una
secuencia infinita de llamadas a si mismo. Claro
que cualquier algoritmo que genere tal secuencia
no termina nunca. Una funcion recursiva f debe
definirse en terminos que no impliquen a f al
menos en un argumento o grupo de argumentos. Debe
existir una salida de la secuencia de llamadas
recursivas, sin esta salida no puede calculase
ninguna funcion recursiva.
Estructuras de Datos
6
Algoritmo - Quicksort
Quik ( x, lb, ub ) If ( lb gtub )
Return Arreglo ordenado Particion( x, lb,
ub, j ) Dividir los elemntos del subarreglo de
tal manera que uno de ellos ( posiblemente x
lb, este ahora en x j j es un parametro
de salida ), y 1. xi lt xj para lblt i lt
j 2. xi gt xj para j lt i ltub xj
esta ahora en su posicion final Quik ( x,
lb, j -1 ) Ordenar el subarreglo en forma
recursiva entre las posiciones lb y j 1
Quik( x, j 1, ub ) Ordenar el subarreglo en
forma recursiva entre las posiciones j 1 y
ub
Estructuras de Datos
7
Algoritmo - Partición
Particion ( x, lb, ub, pj ) a xlb
a es el
elemento cuya posicion final se
busca upub downlb While ( down lt up ) while
( x down lt a down lt ub) recorrer limite
superior del arreglo down while ( x up
gt a ) recorrer limite inferior del
arreglo up - - if ( down lt up )
intercambiar x down y x up temp x
down x down x up x up
temp x lb x up x up a pj up
Estructuras de Datos
8
Eficiencia Arreglo desordenado
Asumiendo que el archivo de tamaño n es una
potencia de 2, digamos n 2m, por lo que m
log2 n. Asumiendo también que la posición
correcta para el elemento pivote siempre cae en
la mitad del subarreglo. En ese caso habrá
aproximadamente n comparaciones (en realidad n-1)
en la primera pasada, después de eso el archivo
se parte en dos subarchivos de tamaño n/2,
aproximadamente. Para cada uno de estos dos
archivos se hacen aproximadamente n/2
comparaciones, y un total de 4 archivos de tamaño
n/4. Después de dividir los subarchivos m veces,
habrá n archivos de tamaño 1. Así que el número
total de comparaciones para la ordenación
completa es aproximadamente n 2 (n / 2) 4
(n / 4) 8 (n / 8) ... n (n / n) o n
n n ... n (m veces) comparaciones. Son m
términos por que el archivo se subdivide m veces.
Así que el número total de comparaciones es O(n
m) o O(n log n) (recordando que m log2
n) (Tomamos el primer elemento del arreglo como
pivote y este encontrara su posicion en la mitad
del subarreglo )
Estructuras de Datos
9
Eficiencia - Arreglo Ordenado
Si, por ejemplo, tomamos el primero elemento del
subarreglo (que ya está en su posición correcta),
entonces el archivo original se divide en dos
subarchivos de tamaño 0 y n-1. Si el proceso
continúa, se obtendrán un total de n-1
subarchivos. El primero de tamaño n, el que sigue
de n-1, el siguiente de tamaño n-2, y así
sucesivamente. Asumiendo k comparaciones para
reordenar un archivo de tamaño k, el número total
de comparaciones para ordenar el archivo completo
es n (n 1) (n 2) ... 2 que es
O(n2). De manera similar si el archivo está
ordenado en orden descendente se hacen
particiones muy desbalanceadas. Así que la
versión original de QuickSort tiene la absurda
propiedad que trabaja mejor con archivos que
están completamente desordenados y peor para
archivos que están completamente ordenados. La
situación es precisamente lo opuesto a la
burbuja, que trabaja mejor para archivos
ordenados y peor para archivos desordenados.
Estructuras de Datos
Write a Comment
User Comments (0)
About PowerShow.com