Metodos de Ordenamiento Recursivos e Iterativos (1)

27
Métodos de Ordenamiento TS - III MMCV

Transcript of Metodos de Ordenamiento Recursivos e Iterativos (1)

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 1/27

Métodos deOrdenamientoTS - III

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 2/27

Métodos de Ordenamiento

Métodos Recursivos:

Mezcla (MergeSort)

QuickSort

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 3/27

Métodos Recursivos

Método de MergeSort

Se aplica la técnica divide y vencerás, dividiendo la

secuencia de datos en dos sublistas hasta ue las

sublistas tengan un !nico ele"ento, luego se ordenan

"ezclando dos sublistas ordenadas en una lista

ordenada, en #or"a sucesiva hasta obtener una

secuencia !nica ya ordenada$

Si n % & solo hay un ele"ento por ordenar, sino se hace

una ordenaci'n de "ezcla de la pri"era "itad del

arreglo con la segunda "itad$ as dos "itades se

ordenan de igual #or"a$ MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 4/27

Métodos Recursivos

Método de MergeSort: Ejemplo de simulación

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 5/27

Métodos Recursivos

Método de MergeSort:

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 6/27

Métodos Recursivos

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 7/27

Métodos Recursivos

Método de QuickSort  l "étodo se basa en dividir los n ele"entos de la lista a ordenar

en dos partes o particiones separadas por un ele"ento

*na partici'n izuierda, un ele"ento central deno"inado pivote o

ele"ento de partici'n, y una partici'n derecha$

a partici'n se hace de tal #or"a ue todos los ele"entos de la

pri"era sublista (partici'n izuierda) son "enores ue todos losele"entos de la segunda sublista (partici'n derecha)$

as dos sublistas se ordenan entonces independiente"ente$

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 8/27

Métodos Recursivos

Método de QuickSort 

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 9/27

Métodos Recursivos

Método de QuickSort 

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 10/27

Métodos Iterativos

Métodos +terativos:

urbu-ao Si"pleo Me-orada

+nserci'n

Selecci'n

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 11/27

Métodos Iterativos

ur!uja Simple:

ste "étodo es uno de los "as si"ples, es tan #ácil

co"o co"parar todos los ele"entos de una lista contra

todos, si se cu"ple ue uno es "ayor o "enor a otro,

entonces los interca"bia de posici'n$

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 12/27

Métodos Iterativos

Ejemplo:

MMCV

.

/

&

0

1

ESTRATEGIA

2o"para"os todos contra todos, aun este"os

generando co"paraciones e3tras$

0

&

4

1

5

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 13/27

Métodos Iterativos

Ejemplo:"aso # para i $ #

MMCV

.

/

&

0

1

0

&

4

1

5

.

/

&

0

1

0

&

4

1

5

.

&

/

0

1

0

&

4

1

5

.

&

0

/

1

0

&

4

1

5

.

&

0

1

/

0

&

4

1

5

 j$% j$# j$& j$'

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 14/27

Métodos Iterativos

Ejemplo:"aso & para i $ &

MMCV

.

&

0

1

/

0

&

4

1

5

&

.

0

1

/

0

&

4

1

5

&

0

.

1

/

0

&

4

1

5

&

0

1

.

/

0

&

4

1

5

&

0

1

.

/

0

&

4

1

5

v

v

v

v

 j$% j$# j$& j$'

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 15/27

Métodos Iterativos

Ejemplo:"aso ' para i $ '

MMCV

&

0

1

.

/

0

&

4

1

5

0

&

1

.

/

0

&

4

1

5

0

&

1

.

/

0

&

4

1

5

0

&

1

.

/

0

&

4

1

5

0

&

1

.

/

0

&

4

1

5

v

v

v

v

 j$% j$# j$& j$'

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 16/27

Métodos Iterativos

Método !ur!ujaS

  pu!lic void !ur!ujaS ( )*int temp+,or (int i$#+ i-n+ i..)*

,or (int j$%+ j-n/#+ j..)*i, (01j2 3 01j.#2)*

temp $ 01j2+01j2 $ 01j.#2+

01j.#2 $ temp+4

  44

  4

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 17/27

Métodos Iterativos

Método !ur!ujaM

  pu!lic void !ur!ujaM ( )*int temp+,or (int i$%+ i-n/#+ i..)*

,or (int j$i.#+ j-n+ j..)*i, (01i2 3 01j2)*

temp $ 01i2+01i2 $ 01j2+

01j2 $ temp+4

  44

  4

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 18/27

Métodos Iterativos

Método de Selecciónste algorit"o consiste en lo siguiente:

uscas el ele"ento "ás peue6o de la lista$

o interca"bias con el ele"ento ubicado en la pri"era posici'nde la lista$

uscas el segundo ele"ento "ás peue6o de la lista$

o interca"bias con el ele"ento ue ocupa la segunda posici'nen la lista$

Repites este proceso hasta ue hayas ordenado toda la lista$

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 19/27

Métodos Iterativos

Método de Selección7or e-e"plo:

ista a ordenar :   5 8 1 8 . 8 4 8 1 

interca"bia"os & con el 5 y la lista ueda as9:1 8 1 8 . 8 2 8 5

o interca"bia"os 4 con el ele"ento en la segunda posici'n, esdecir el 1$ a lista ueda as9:

& 8 2 8 . 8 3 8 5

interca"bia"os 1 con el .:& 8 4 8 3 8 . 8 4 interca"bia"os 5 con el .:

& 8 4 8 1 8 5 8 . 

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 20/27

Métodos Iterativos

Método de Selección  pu!lic void seleccion ( )*

int i6 j6 k6 p6 temp+,or(k $ %+ k - n+ k..)*

p $ k+,or(i $ k.#+ i - n+ i..)*i,(01i2 - 01p2) p $ i+

4i,(p 7$ k)*

temp $ 01p2+01p2 $ 01k2+01k2 $ temp+

44

44MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 21/27

Métodos Iterativos

Método de Inserción

2onsidere"os ue en un "o"ento dado, el seg"ento izuierdo del

arreglo está ordenado y el seg"ento derecho no$

7ode"os to"ar un ele"ento del seg"ento derecho e insertarlo ensu lugar correcto en el lado izuierdo$

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 22/27

Métodos Iterativos

Método de Inserción

Se considera la lista partida en dos sublistas, una ordenada y la

otra para ordenar 

n el pri"er paso, la lista ordenada contiene un ele"ento y la

lista por ordenar, n8&,

Se van e3trayendo uno a uno los ele"entos de la lista

desordenada y se colocan en la sublista ordenada, "edianteco"paraciones sucesivas, hasta encontrar la posici'n correcta,

l proceso contin!a hasta ue la lista desordenada ueda vac9a$

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 23/27

Métodos Iterativos

Método de Inserción-e"plo:

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 24/27

Métodos Iterativos

Método de Inserción pu!lic void insercion ( )*

#or  (int i%& i ; n i<<) =

int au3 % >?i@

int -

#or  (-%i8& - A %0 BB >?-@ A au3 -88)=

 >?-<&@ % >?-@

C

 >?-<&@ % au3C

C

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 25/27

Ejercicio de 0plicación

Dise6e una clase lla"ada Estudiante, con los siguientes atributos: c'digo,

no"bre, c'digo de curso y nota #inal del curso$ *n constructor con pará"etros Métodos getters y setters$ Método rede#inido toString()

Dise6e la clase GestionEstudiante, con atributos: un arreglo estático de

tipo studiante de ta"a6o "á3i"o .0, y una variable para cantidad de

estudiantes$ *n constructor sin pará"etros$

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 26/27

Ejercicio de 0plicación

Dise6e los siguientes "étodos:

a) Que agregue al #inal del arreglo un ob-eto studiante pasado co"o

pará"etro$ Debe veri#icar si e3iste espacio disponible$ 2onsidere ue el

c'digo del estudiante se puede repetir es decir un estudiante puede

llevar varios cursos$

b) *se el "étodo de ordena"iento de Quicksort y ordene la in#or"aci'nrespecto del c'digo del estudiante de "ayor a "enor y retornelo$ (a

in#or"aci'n original no debe su#rir ca"bios)$

c) *se el "étodo de ordena"iento de selecci'n y ordene respecto al

no"bre del estudiante y retornelo$ (la in#or"aci'n original no debe su#rir

ca"bios)$

d) Método rede#inido toString() ue retorne la in#or"aci'n del no"bre delestudiante, c'digo del curso y su pro"edio ponderado (es decir, el

pro"edio de notas de todos los cursos ue llevo)$

MMCV

8/17/2019 Metodos de Ordenamiento Recursivos e Iterativos (1)

http://slidepdf.com/reader/full/metodos-de-ordenamiento-recursivos-e-iterativos-1 27/27

Ejercicio de 0plicación

Estudiante

-cod: int-nombre: String-codCurso: int-notaFinalCurso: int

GestionEstudiante

-listaE: Estudiante[50]-n: int 1..*1

Dise6e la clase 7rueba y si"ule el ingreso de &0 datos de estudiantes$