1. An´lisis de Algoritmos
a
M.C.C. Ericka Rechy Ram´ ırez
Universidad Veracruzana
Licenciatura en Sistemas Computacionales Administrativos
Marzo 22, 2006
1. Ordenamiento
1.1. Ordenamiento Quicksort
Desarrollado por C.A.R. Hoare. Es un m´todo de ordenamiento de divide y
e
vencer´s que consiste en tomar un elemento del arreglo como pivote. Este pivote
a
es usado para separar los elementos del arreglo en 2 particiones: 1) Partici´n
o
izquierda contiene elementos menores al pivote y 2) Partici´n derecha contiene
o
elementos mayores o iguales al pivote.
Quicksort es entonces aplicado de forma recursiva para ordenar las particio-
nes izquierdas y derechas.
funcion Quicksort(A[], m, n)
si(m < n) entonces
p ← particion (A, m, n)
Quicksort(A, m, p-1)
Quicksort(A, p+1, n)
fin-si
Entero funcion particion(A[], i, j)
mitad ← (i + j)/2
pivote ← A[mitad]
A[mitad] ← A[i]
A[i] ← pivote
p←i
desde k ← i + 1 hasta k ← j hacer
Si A[k] < pivote entonces
temp ← A[++p]; A[p] ← A[k]
A[k] ← temp
1
2. fin-si
fin-desde
intercambiar(A[i],A[p])
devuelve p
Referencias
[ST98] Standish Thomas A.: Data Structures in Java, Addison Wesley,
1998
2