INFORME Quicksort

June 6, 2019 | Author: Samuel Marquez Zavaleta | Category: Mathematical Logic, Mathematical Concepts, Computer Science, Discrete Mathematics, Computer Engineering
Share Embed Donate


Short Description

Download INFORME Quicksort...

Description

INTEGRANTES: •

Rodrigez Urquiaga, Roberto



Saldaña Altamirano, Keven



Marquez Zavaleta, Samuel



Moreno Chavez Daniel



Mantilla Santa Cruz Luis

CUADROS DE EVALUACION: INTEGRANTES/ITE MS

CONOCIMIEN DESENVOLVIMIE  TO NTO (5 ptos)

(5 ptos)

MATERI AL

COMPORTAMIE NTO

(5 ptos)

(5 ptos)

Márquez Zavaleta, Samuel Mantilla Santa Cruz, Luis Saldaña Altamirano, Keven Rodríguez Urquiaga, Roberto Moreno Chávez, Daniel

ITEMS

P.M.

CARATULA RESUMEN INTRODUCCION CONTENIDO CONCLUSIONES RECOMENDACIONE S REFERENCIAS

1 4 2 7 3

TOTAL

20

2 1

PUNTAJ E

 TOTA L

1.

RESUMEN:

En este informe detallaremos principalmente un algoritmo de ordenación que es probablemente el más utilizado de todos, nos referimos a la Ordenación Rápida (QUICKSORT). El algoritmo básico 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 fácil impl implem emen enta taci ción ón,, prop propor orci cion ona a unos unos buen buenos os resu result ltad ados os gene genera rale less (funciona bien en una amplia diversidad de situaciones) y en muchos caso asos co cons nsum ume e menos enos recu recurs rsos os que que cual ualqui quier otro otro método todo de ordenación, por cual el método método ha sido posiblemente calificado calificado como el mas pequeñ pequeño o código código,, más rápido rápido,, más elegan elegante, te, más intere interesant sante e y eficiente de los algoritmos conocidos de ordenación. La idea central de este ste alg algoritmo consist siste e en los siguiente: - Se toma toma un elem elemen ento to x de una una posi posici ción ón cual cualqu quie iera ra del del arre arregl glo. o. - Se trata de ubicar a x en la posición 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 los pasos anteriores pero pero ahora para los conjuntos de datos que se encuentran a la izquierda y a la derecha de la posición correcta de x en el arreglo. El análisis ha sido comprobado por una extensa experiencia empírica hasta el punto de convertirse en el método elegido en una gran variedad de aplicaciones prácticas de ordenación teniendo así una complejidad en el mejor caso de grado n.logn y peor caso de grado n 2

Desd Desde e su crea creaci ción ón han han inte intent ntado ado y anal analiz izad ado o nuev nuevas as versi version ones es del del algoritmo, pero es fácil 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 sustancialmente a Quicksort.

2. INTRO INTRODUC DUCCIÓ CIÓN. N.

Ordenación y Búsqueda son operaciones básicas en el campo de la documentac aciión y en las que según señalan estadí adísticas, las computadoras emplean la mitad de su tiempo. Aunque su uso puede ser con vectores y con archivos, nos referiremos a vectores. La ordenación (clasificación) es la operación de organizar un conjunto de datos en algún orden dado, tal como creciente o decreciente en datos numéricos, o bien en orden alfabético directo o inverso. Operaciones típicas de ordenación son: lista de números, archivos de clientes de banco, nombres de una agenda telefónica, etc. En síntesis la ordenación significa poner objetos en orden (orden numéricos para los números y alfabético para los caracteres) ascendente o descendente. Por ejemplo, las clasificaciones de los equipos de fútbol, se pueden orga organi niza zarr en orde orden n alfab alfabét étic ico o crec crecie ient nte/ e/de decr crec ecie ient nte e o bien bien por por su punt puntaj aje e obte obteni nido do asce ascend nden ente te/d /des esce cend nden ente te.. El prop propósi ósito to fina finall de la clasificación es facilitar la manipulación de datos en un vector. Existen diversos métodos de ordenación o clasificación, con diferentes vent entajas ajas e inc inconv onveni eniente entess dond donde e debe debem mos tene tenerr en cue cuenta nta las eficiencias en cuanto al tiempo siendo método quicksort uno de ellos, que abarcaremos principalmente aplicados a vectores pero se pueden extender a matrices o tablas, considerando la ordenación respecto a fila o columna, quicksort nos permitirá ordenar vectores con un gran número de elementos y manipular dicho vector. 3. CONT CONTEN ENID IDO: O:

3.1. 3.1 .ORIG ORIGEN. EN.

Inventado por Sir Charles Antony Richard Hoare científico Británico en computación computación)) en 1960, ( científico

cuando visitó la Universidad de Moscú cuando era estudiante . Él creó el “Quicksort”  al in inte tent ntar ar tr trad aduc ucir ir un di dicc ccio ionar nario io de in ingl glés és par para a ru ruso so,, ordena ord enando ndo las pal palabra abras, s, ten tenien iendo do cóm cómo o obj objeti etivo vo red reduci ucirr el pro proble blema ma ori rigi gina nall en su subp bpro robl ble ema mass qu que e pu pued edan an se serr re resu sue elt ltos os más fá fáci cill y rápi rá pida dam men ente te.. Fu Fue e pu publ bliica cado do en 1962 de desp spué uéss de un una a se seri rie e de afinamientos. 3. 2.DEFINICION.

El ordenamiento ordenamiento rápido (quicksort (quicksort en inglés) inglés) es un algoritmo basado en la técnica de divide y vencerás, que permite, en promedio, ordenar “n” elementos en un tiempo proporcional a n*log(n). Esta es la técnica de ordenamiento más rápida 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 vacíos, 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 método se basa en la táctica “divide y vencerás”: consiste en dividir un problema en subproblemas y luego juntar las respuestas de esto estoss subp subpro robl blem emas as para para obte obtene nerr la solu soluci ción ón al prob proble lema ma ce cent ntral ral (sub (subdi divi vidi dien endo do el arra array y en array arrayss ma mass pequ pequeñ eños os y orde ordena narr esto estos) s).. • Es considerado entre los mas rápidos y eficientes de los métodos de ordenación interna. • El tiempo tiempo en marcha marcha del algoritmo algoritmo esenci esencialm alment ente e depend depende e de la opción del elemento del pivote. • Posible reducción de desempeño debido a uso de recursos. sos. • Tiempo de ejecución 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 eleme elemento ntoss del array que se encuen encuentra tran n a la izquie izquierda rda del pivote. -aquí se buscaran los los numero mayores mayores que el pivote. -una vez ubicado ubicado el mayor mayor de la izquierda izquierda tan solo se guarda guarda su posición para luego usarla.

• A2 = Los elementos elementos del array que se encuentran encuentran a la derecha derecha del pivote. -aquí se buscaran los los numero menores menores que el pivote. -una -una vez vez ubicado ubicado el menor menor de la dere derecha cha tan solo solo se guarda guarda su posición para luego usarla. 3. Lueg Luego o de tene tenerr las las posi posici cion ones es se proc proced eder erá á a inte interc rcam ambi biar ar sus sus contenidos. 4. Aplicamos la recursión sobre A1 y A2 5. Realizamos el último paso de "divide y vencerás" que es unir todas las soluciones Para que formen el array A ordenado. 3.5DIAGRAMA 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 =
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF