Está en la página 1de 12

INTEGRANTES:

Rodrigez Urquiaga, Roberto


Saldaa Altamirano, Keven
Marquez Zavaleta, Samuel
Moreno Chavez Daniel
Mantilla Santa Cruz Luis

CUADROS DE EVALUACION:
CONOCIMIENTO DESENVOLVIMIENTO MATERIAL COMPORTAMIENTO
INTEGRANTES/ITEMS TOTAL
(5 ptos) (5 ptos) (5 ptos) (5 ptos)

Mrquez Zavaleta,
Samuel
Mantilla Santa Cruz,
Luis
Saldaa Altamirano,
Keven
Rodrguez Urquiaga,
Roberto
Moreno Chvez,
Daniel

ITEMS P.M. PUNTAJE

CARATULA 1
RESUMEN 4
INTRODUCCION 2
CONTENIDO 7
CONCLUSIONES 3
RECOMENDACIONES 2
REFERENCIAS 1

TOTAL 20

1. RESUMEN:
En este informe detallaremos principalmente un algoritmo de ordenacin que es
probablemente el ms utilizado de todos, nos referimos a la Ordenacin Rpida
(QUICKSORT).

El algoritmo bsico fue creado en 1960 por C.A.R. Hoare y publicado en 1962 y desde
entonces ha sido estudiado objeto de numerosos estudios. El Quicksort es popular porque
a pesar de su no tan fcil implementacin, proporciona unos buenos resultados generales
(funciona bien en una amplia diversidad de situaciones) y en muchos casos consume
menos recursos que cualquier otro mtodo de ordenacin, por cual el mtodo ha sido
posiblemente calificado como el mas pequeo cdigo, ms rpido, ms elegante, ms
interesante y eficiente de los algoritmos conocidos de ordenacin.

La idea central de este algoritmo consiste en los siguiente:


- Se toma un elemento x de una posicin cualquiera del arreglo.
- Se trata de ubicar a x en la posicin correcta del arreglo, de tal forma que todos los
elementos que se encuentran a su izquierda sean menores o iguales a x y todos los
-elementos que se encuentren a su derecha sean mayores o iguales a x.
- Se repiten los pasos anteriores pero ahora para los conjuntos de datos que se
encuentran a la izquierda y a la derecha de la posicin correcta de x en el arreglo.

El anlisis ha sido comprobado por una extensa experiencia emprica hasta el punto de
convertirse en el mtodo elegido en una gran variedad de aplicaciones prcticas de
ordenacin teniendo as una complejidad en el mejor caso de grado n.logn y peor caso de
grado n 2

Desde su creacin han intentado y analizado nuevas versiones del algoritmo, pero es fcil
decepcionarse porque este algoritmo esta bien equilibrado, que las mejoras en una parte
del programa pueden estar mas que compensados por las consecuencias de un mal
rendimiento de otra pero por eso no mejoran sustancialmente a Quicksort.

2. INTRODUCCIN.
Ordenacin y Bsqueda son operaciones bsicas en el campo de la documentacin y en las
que segn sealan estadsticas, las computadoras emplean la mitad de su tiempo.

Aunque su uso puede ser con vectores y con archivos, nos referiremos a vectores.

La ordenacin (clasificacin) es la operacin de organizar un conjunto de datos en algn


orden dado, tal como creciente o decreciente en datos numricos, o bien en orden
alfabtico directo o inverso. Operaciones tpicas de ordenacin son: lista de nmeros,
archivos de clientes de banco, nombres de una agenda telefnica, etc. En sntesis la
ordenacin significa poner objetos en orden (orden numricos para los nmeros y
alfabtico para los caracteres) ascendente o descendente.

Por ejemplo, las clasificaciones de los equipos de ftbol, se pueden organizar en orden
alfabtico creciente/decreciente o bien por su puntaje obtenido ascendente/descendente.
El propsito final de la clasificacin es facilitar la manipulacin de datos en un vector.

Existen diversos mtodos de ordenacin o clasificacin, con diferentes ventajas e


inconvenientes donde debemos tener en cuenta las eficiencias en cuanto al tiempo siendo
mtodo quicksort uno de ellos, que abarcaremos principalmente aplicados a vectores pero
se pueden extender a matrices o tablas, considerando la ordenacin respecto a fila o
columna, quicksort nos permitir ordenar vectores con un gran nmero de elementos y
manipular dicho vector.

3. CONTENIDO:

3.1.ORIGEN.

Inventado por Sir Charles Antony Richard Hoare (cientfico


Britnico en computacin) en 1960, cuando visit la
Universidad de Mosc cuando era estudiante . l cre el
Quicksort al intentar traducir un diccionario de ingls para
ruso, ordenando las palabras, teniendo cmo objetivo
reducir el problema original en subproblemas que puedan
ser resueltos ms fcil y rpidamente. Fue publicado en 1962
despus de una serie de afinamientos.

3. 2.DEFINICION.

El ordenamiento rpido (quicksort en ingls) es un algoritmo basado en la tcnica de


divide y vencers, que permite, en promedio, ordenar n elementos en un tiempo
proporcional a n*log(n). Esta es la tcnica de ordenamiento ms rpida conocida. El
algoritmo original es recursivo, pero se utilizan versiones iterativas para mejorar su
rendimiento.
Dividir: el arreglo se particiona en dos sub-arreglos no vacos, tal que cada
elemento de un sub-arreglo sea menor o igual a los elementos del otro sub-
arreglo.
Conquistar: los dos arreglos son ordenados llamando recursivamente a quicksort.
Combinar: Como cada arreglo ya est ordenado, no se requiere trabajo adicional.

3. 3. CARACTERISTICAS.

Este mtodo se basa en la tctica divide y vencers: consiste en dividir un problema


en subproblemas y luego juntar las respuestas de estos subproblemas para obtener la
solucin al problema central (subdividiendo el array en arrays mas pequeos y ordenar
estos).
Es considerado entre los mas rpidos y eficientes de los mtodos de ordenacin
interna.
El tiempo en marcha del algoritmo esencialmente depende de la opcin del elemento
del pivote.
Posible reduccin de desempeo debido a uso de recursos.
Tiempo de ejecucin depende de los datos de entrada

3.4. ALGORITMO.

1. Elegimos un elemento v (llamado pivote) del array de datos.


2. Particionados el array de datos A en dos arrays:
A1 = Los elementos del array que se encuentran a la izquierda del pivote.
-aqu se buscaran los numero mayores que el pivote.
-una vez ubicado el mayor de la izquierda tan solo se guarda su posicin para luego
usarla.
A2 = Los elementos del array que se encuentran a la derecha del pivote.
-aqu se buscaran los numero menores que el pivote.
-una vez ubicado el menor de la derecha tan solo se guarda su posicin para luego
usarla.
3. Luego de tener las posiciones se proceder a intercambiar sus contenidos.
4. Aplicamos la recursin sobre A1 y A2
5. Realizamos el ltimo paso de "divide y vencers" que es unir todas las soluciones
Para que formen el array A ordenado.
3.5 DIAGRAMA DE FLUJO.
3.6 . PSEUDOCODIGO.
INICIO
Llenar (A);
Algoritmo quicksort (A, inf, sup)
i inf
j sup
x A [ (inf +sup) div 2]
mientras i = < j hacer
mientras A[ i ]< x hacer
i i +1
fin _ mientras
mientras A[ j ]> x hacer
j j -1
fin _ mientras
si i =<j entonces
tam A[ i ]
A[ i ] A[ j ]
A[ j ] tam
i=i+1
j=j-1
fin _ si
fin _ mientras
si inf < j
llamar _a quicksort (A, inf, j)
fin _ si
si i < sup
llamar _a quicksort (A, i, sup)
fin _ si
FIN

3.7. FUNCION IMPLEMENTADA EN C++.


void quicksort (int A[100],int inf, int sup)
{
int i=inf,tam,k,j=sup;
int x=A[(inf+sup)/2];
while(i<=j)
{ while(A[i]<x)
i++;
while(A[j]>x)
j--;
if(i<=j)
{ tam=A[i];
A[i]=A[j];
A[j]=tam;
i++;
j--; }
}
if (inf< j)
quicksort(A,inf,j);
if (i<sup)
quicksort(A,i,sup); }

3.8 EJEMPLO PRCTICO


0 1 2 3 4

A [8]= 1 4 5 2 3

i=0 j=4 x=A [2]=5

0 1 2 3 4

A [8]= 1 4 5 2 3
1<5 (V) i=1

4<5 (V) i=2

3>5 (F) j=4

CAMBIO

0 1 2 3 4

A [8]= 1 4 3 2 5

i=3 j=3 x=A [2]=5

0 1 2 3 4

A [8]= 1 4 3 2 5

i=4 j=3 x=A [2]=5


quicksort(A,0,4)

0 1 2 3

A [8] = 1 4 3 2

i=0 j=3 x=A [1]=4

0 1 2 3

A [8] = 1 4 3 2

i=0 j=3 x=A [1] = 4

0 1 2 3

A [8] = 1 2 3 4

FIN DEL ALGORITMO

0 1 2 3 4

A [8]= 1 2 3 4 5
3.9. COMPLEJIDAD

Es el algoritmo de ordenacin ms rpido (en la prctica) conocido. Su tiempo de


ejecucin promedio es O(N log(N)).
Para el peor caso tiene un tiempo O (N2), pero si se codifica correctamente las
situaciones en las que sucede el peor caso pueden hacerse altamente improbables.
En la prctica, el hecho de que sea ms rpido que los dems algoritmos de ordenacin
con el mismo tiempo promedio O(N log(N)) est dado por un ciclo
Interno muy ajustado (pocas operaciones).

4. APLICACIONES

- Ordenacion en los exmenes de admisin deacuerdo a los puntajes obtenidos.}


- Ordenar los puntajes para conocer en ranking en diversos juegos, concurso,etc
- Manejar las producciones industriales deacuerdo en su porcentaje en ventas
- Registros de almacenes

5. CONCLUSIONES:

Analizando quicksort en el mejor y peor caso se puede ver que es uno de los
mejores mtodos de ordenacin, su implementacin a pesar de no ser muy
sencilla tampoco es complicada haciendo de este un algoritmo interesante y de
elegante estructura y de mucha eficiencia.

Este algoritmo de ordenacin es un ejemplo claro de que el mtodo divide y


vencers es efectivo cuando tienes cantidades grandes de datos por trabajar y
necesitas ahorrar tiempo y recursos.

6. RECOMENDACIONES:

- El mtodo de ordenacin en un caso ordinario es eficiente para grandes


cantidades de datos, porque si se quiere procesar cantidades pequeas los
algoritmos de burbuja y insercin son ms eficientes.
- Si se usa el mtodo de ordenacin quicksort es mejor implementar su cdigo
seleccionado como pivote el trmino medio del vector porque es ms fcil de
implementar y su cdigo es ms sencillo.
7 .REFERENCIAS:

BIBLIOGRAFA:

O. Cair, S. Guardati, Estructuras de Datos, 2a. Ed., McGraw Hill, 2002.


Cesar liza avila , Estructura de Datos con c++ 2 Ed, Creadores.2005

Luis Joyanes Aguilar, Fundamentos de programacin,3ra Ed, Concepcion


Fernandez,2003.

Marck Allen Weiss, Estructuras de Datos y Algortimos,1ra Ed, Addison Wesly


Iberoamericana,1995

WEBGRAFIA

Annimo, Quicksort,[Internet ],2011, wikipedia, Disponible en:


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

Jos Rafael Zavala Meneses, quicksort, [Internet], 2009, organizacin desconocida,


Disponible en:
http://mailweb.udlap.mx/~sainzmar/is211/algoritQuik.html

Autor desconocido, Quicksort,[Internet ],2009, slideshare, Disponible en:


http://www.slideshare.net/juliangg30/quick-sort

También podría gustarte