You are on page 1of 55

BURBUJA BIDIRECCIONAL( SHAKER SORT SACUDIDA)

Mas conocido en la habla hispana como el


mtodo de la sacudida.
Es una optimizacin del mtodo de la burbuja.
Dado un vector A de n elementos A[0], A[1], A[2],
A[3],.,A[n-1], el procedimiento consiste en lo
siguiente:
El algoritmo tiene 2 etapas
PROCEDIMIENTO
1. La primera etapa se recorre de derecha a izquierda,
trasladar los elementos mas pequeos hacia la parte
izquierda del arreglo..
ALGORITMOS Y ESTRUCTURA DE DATOS

BURBUJA BIDIRECCIONAL( SHAKER SORT SACUDIDA)

2. En una variable se almacena la posicin del ultimo


elemento intercambiado.
3. En la segunda etapa se recorre de izquierda a derecha,
trasladando los elementos mas grandes hacia la parte
derecha del arreglo.
4. En una variable se almacena la posicin del ultimo
elemento intercambiado.
5. Las sucesivas pasadas trabajan con los elementos del
vector comprendidos entre las posiciones almacenadas
en las variables descrita en los pasos 2 y 4.
ALGORITMOS Y ESTRUCTURA DE DATOS

BURBUJA BIDIRECCIONAL( SHAKER SORT SACUDIDA)

6. El algoritmo finaliza cuando en una etapa no hay


intercambios.
7. O cuando el contenido de la variable que almacena
el extremo izquierdo del arreglo es mayor que el
contenido de la variable que almacena el extremo
derecho.

ALGORITMOS Y ESTRUCTURA DE DATOS

BURBUJA BIDIRECCIONAL( SHAKER SORT SACUDIDA)


ITERACION #1
0
1
2
3
4
A[3]>A[4]
77 55 88 11 44
11>44, no

11

55

88

11

44

77

55

11

88

44

A[2]>A[3]
88>11, si
intercambiar

A[1]>A[2]
55>11, si
intercambiar

ALGORITMOS Y ESTRUCTURA DE DATOS

BURBUJA BIDIRECCIONAL( SHAKER SORT SACUDIDA)


0

77

11

55

88

44

11

77

55

88

44

A[0]>A[1]
77>11, si,
intercambiar

ALGORITMOS Y ESTRUCTURA DE DATOS

BURBUJA BIDIRECCIONAL( SHAKER SORT SACUDIDA)

Ahora comienza la segunda etapa, para ello se hace el


recorrido de Izquierda a derecha ()
0

11

77

55

88

44

11

55

77

88

44

A[1]>A[2]
77>55, si,
intercambiar

A[2]>A[3]
77>88, no

ALGORITMOS Y ESTRUCTURA DE DATOS

BURBUJA BIDIRECCIONAL( SHAKER SORT SACUDIDA)


0

11

55

77

88

44

11

55

77

44

88

A[3]>A[4]
88>44, si,
intercambiar

ALGORITMOS Y ESTRUCTURA DE DATOS

BURBUJA BIDIRECCIONAL( SHAKER SORT SACUDIDA)


ITERACION #2
Recorrido de derecha a izquierda
0

11

55

77

44

88

11

55

44

77

88

A[2]>A[3]
77>44, si,
intercambiar

A[1]>A[2]
55>44, si,
intercambiar

ALGORITMOS Y ESTRUCTURA DE DATOS

BURBUJA BIDIRECCIONAL( SHAKER SORT SACUDIDA)


0

11

44

55

77

88

Ahora inicia la segunda etapa de izquierda a la derecha


0

11

44

55

77

88

A[2]>A[3]
55>77, no, como no hay
intercambio, entonces ac
finaliza el algoritmo,
vector ya ordenado.

ALGORITMOS Y ESTRUCTURA DE DATOS

BURBUJA BIDIRECCIONAL( SHAKER SORT SACUDIDA)


0

11

44

55

77

88

El vector ya esta
ordenado.

ALGORITMOS Y ESTRUCTURA DE DATOS

10

ORDENACION METODO DE HEAPSORT - MONTICULO

Es una variante del mtodo de seleccin,


llamado tambin algoritmo por montculos (heap
sort).
Este algoritmo consiste en almacenar todos los
elementos del vector a ordenar en un montculo
(heap).
Luego extraer el nodo que queda como nodo raz
del montculo (cima) en sucesivas iteraciones
obteniendo el conjunto ordenado.

ALGORITMOS Y ESTRUCTURA DE DATOS

11

ORDENACION METODO DE HEAPSORT - MONTICULO

Basa su funcionamiento en una propiedad de los


montculos, por la cual, la cima contiene siempre
el menor elemento (o el mayor, segn se haya
definido el montculo) de todos los almacenados
en l.
El significado de heap en computacin es el de
una cola de prioridades (priority queue).

ALGORITMOS Y ESTRUCTURA DE DATOS

12

ORDENACION METODO DE HEAPSORT - MONTICULO

Un heap es un arreglo de n posiciones ocupado


por los elementos de la cola.
Se mapea un rbol binario de tal manera en el
arreglo que el nodo en la posicin i es el padre
de los nodos en las posiciones (2*i) y (2*i+1).
El valor en un nodo es mayor o igual a los
valores de sus hijos.
Por consiguiente, el nodo padre tiene el mayor
valor de todo su subrbol

ALGORITMOS Y ESTRUCTURA DE DATOS

13

ORDENACION METODO DE HEAPSORT - MONTICULO


PROCEDIMIENTO

Heap Sort consiste esencialmente en:

Convertir el arreglo en un heap


Construir un arreglo ordenado de atrs hacia adelante
(mayor a menor) repitiendo los siguientes pasos:
Sacar el valor mximo en el heap (el de la posicin 1)
Poner ese valor en el arreglo ordenado

ALGORITMOS Y ESTRUCTURA DE DATOS

14

ORDENACION METODO DE HEAPSORT - MONTICULO

Reconstruir el heap con un elemento menos


Utilizar el mismo arreglo para el heap y el arreglo
ordenado.

ALGORITMOS Y ESTRUCTURA DE DATOS

15

ORDENACION METODO DE HEAPSORT - MONTICULO

Dado el vector A que tiene los siguientes datos:


0

77 55 88 11 90 60 44 25 18

En base a este se elabora el montculo o rbol tal como se


muestra a continuacin

ALGORITMOS Y ESTRUCTURA DE DATOS

16

ORDENACION METODO DE HEAPSORT - MONTICULO


77

55

11

25

A[7]

A[3]

18

A[0]

A[1]

90

88

A[4]

60

A[5]

A[2]

44

A[6]

A[8]

ALGORITMOS Y ESTRUCTURA DE DATOS

17

ORDENACION METODO DE HEAPSORT - MONTICULO


77

Observamos del anterior que


A[7]>A[3]. Por lo que se debe
intercambiar, despus de hacerlo
queda as:

55

25

11

88

90

60

44

18
ALGORITMOS Y ESTRUCTURA DE DATOS

18

ORDENACION METODO DE HEAPSORT - MONTICULO


77

Observamos del anterior que


A[4]>A[1]. Por lo que se debe
intercambiar, despus de hacerlo
queda as:

90

25

11

88

55

60

44

18
ALGORITMOS Y ESTRUCTURA DE DATOS

19

ORDENACION METODO DE HEAPSORT - MONTICULO


90

Observamos del anterior que


A[1]>A[0]. Por lo que se debe
intercambiar, despus de hacerlo
queda as:
Luego se anula el nodo
Raiz y se pasa a
Una lista.

77

25

88

55

0 1

11

60

44
4

18

8
90

ALGORITMOS Y ESTRUCTURA DE DATOS

20

ORDENACION METODO DE HEAPSORT - MONTICULO


18

Ahora pasamos el ultimo nodo del


anterior ( de derecha a izquierda)
como el nuevo nodo raz
quedando la nueva
configuracin as:

77
Se repite de nuevo el proceso,
donde debe cumplirse siempre
que los padres son
mayores que los
25
hijos-

88

55

60

44

11
ALGORITMOS Y ESTRUCTURA DE DATOS

21

ORDENACION METODO DE HEAPSORT - MONTICULO


77

18

25

88

55

60

44

11
ALGORITMOS Y ESTRUCTURA DE DATOS

22

ORDENACION METODO DE HEAPSORT - MONTICULO


77

25

18

88

55

60

44

11
ALGORITMOS Y ESTRUCTURA DE DATOS

23

ORDENACION METODO DE HEAPSORT - MONTICULO


77

55

18

88

25

60

44

11
ALGORITMOS Y ESTRUCTURA DE DATOS

24

ORDENACION METODO DE HEAPSORT - MONTICULO


88

55

18

77

25

60

44

11
ALGORITMOS Y ESTRUCTURA DE DATOS

25

ORDENACION METODO DE HEAPSORT - MONTICULO


11

55

18

77

25

0 1

60

44
4

88

90

ALGORITMOS Y ESTRUCTURA DE DATOS

26

ORDENACION METODO DE HEAPSORT - MONTICULO


55

11

18

77

25

60

44

ALGORITMOS Y ESTRUCTURA DE DATOS

27

ORDENACION METODO DE HEAPSORT - MONTICULO


55

18

11

77

25

60

44

ALGORITMOS Y ESTRUCTURA DE DATOS

28

ORDENACION METODO DE HEAPSORT - MONTICULO


55

25

11

77

18

60

44

ALGORITMOS Y ESTRUCTURA DE DATOS

29

ORDENACION METODO DE HEAPSORT - MONTICULO


77

25

11

55

18

60

44

ALGORITMOS Y ESTRUCTURA DE DATOS

30

ORDENACION METODO DE HEAPSORT - MONTICULO


77

25

11

60

18

55

44

ALGORITMOS Y ESTRUCTURA DE DATOS

31

ORDENACION METODO DE HEAPSORT - MONTICULO


77

25

11

60

18

55

44

ALGORITMOS Y ESTRUCTURA DE DATOS

32

ORDENACION METODO DE HEAPSORT - MONTICULO


44

25

11

60

18

0 1

55

77

88

90

ALGORITMOS Y ESTRUCTURA DE DATOS

33

ORDENACION METODO DE HEAPSORT - MONTICULO


60

25

11

44

18

55

ALGORITMOS Y ESTRUCTURA DE DATOS

34

ORDENACION METODO DE HEAPSORT - MONTICULO


60

25

11

55

18

44

ALGORITMOS Y ESTRUCTURA DE DATOS

35

ORDENACION METODO DE HEAPSORT - MONTICULO


60

25

11

55

18

44

ALGORITMOS Y ESTRUCTURA DE DATOS

36

ORDENACION METODO DE HEAPSORT - MONTICULO


44

25

11

55

18

0 1

60

77

88

90

ALGORITMOS Y ESTRUCTURA DE DATOS

37

ORDENACION METODO DE HEAPSORT - MONTICULO

55

25

11

44

18

ALGORITMOS Y ESTRUCTURA DE DATOS

38

ORDENACION METODO DE HEAPSORT - MONTICULO

55

25

11

44

18

ALGORITMOS Y ESTRUCTURA DE DATOS

39

ORDENACION METODO DE HEAPSORT - MONTICULO

18

25

44

11
0 1

55

60

77

88

90

ALGORITMOS Y ESTRUCTURA DE DATOS

40

ORDENACION METODO DE HEAPSORT - MONTICULO

25

18

44

11

ALGORITMOS Y ESTRUCTURA DE DATOS

41

ORDENACION METODO DE HEAPSORT - MONTICULO

44

18

25

11

ALGORITMOS Y ESTRUCTURA DE DATOS

42

ORDENACION METODO DE HEAPSORT - MONTICULO

44

18

25

11

ALGORITMOS Y ESTRUCTURA DE DATOS

43

ORDENACION METODO DE HEAPSORT - MONTICULO

11

18

25

0 1

44

55

60

77

88

90

ALGORITMOS Y ESTRUCTURA DE DATOS

44

ORDENACION METODO DE HEAPSORT - MONTICULO

18

11

25

ALGORITMOS Y ESTRUCTURA DE DATOS

45

ORDENACION METODO DE HEAPSORT - MONTICULO

25

11

18

ALGORITMOS Y ESTRUCTURA DE DATOS

46

ORDENACION METODO DE HEAPSORT - MONTICULO

25

11

18

ALGORITMOS Y ESTRUCTURA DE DATOS

47

ORDENACION METODO DE HEAPSORT - MONTICULO

18

18

11

11
0 1

18 25

44

55

60

77

88

90

ALGORITMOS Y ESTRUCTURA DE DATOS

48

ORDENACION METODO DE HEAPSORT - MONTICULO

11

0 1

11 18 25

44

55

60

77

88

90

ALGORITMOS Y ESTRUCTURA DE DATOS

49

ORDENACION METODO DE HEAPSORT - MONTICULO


0

11 18 25 44 55 60 77 88 90

El vector ya esta
ordenado.

ALGORITMOS Y ESTRUCTURA DE DATOS

50

METODOS DE BUSQUEDA
La bsqueda es una actividad relevante en la vida, por
lo tanto buscar y recuperar informacin son tareas
esenciales.
La operacin de bsqueda permite recuperar datos
previamente almacenados, siendo el resultado un xito
u fracaso.
La bsqueda puede llevarse a cabo sobre elementos
ordenados o desordenados.
En el primer caso la bsqueda se facilita por emplear
menos tiempo.
Los mtodos de bsqueda pueden clasificarse en
internos y externos.

ALGORITMOS Y ESTRUCTURA DE DATOS

51

METODOS DE BUSQUEDA
Bsqueda Interna. Es cuando los datos estn
almacenados en la memoria principal en variables
(arreglos, listas, arreglos de estructuras, etc.).
Bsqueda Externa.- Es cuando los datos estn
almacenados en la memoria secundaria ( archivos en
disco, cintas, cartuchos, discos compactos).

Tipos de bsqueda existente:

Bsqueda lineal o secuencial


Bsqueda binaria

ALGORITMOS Y ESTRUCTURA DE DATOS

52

BUSQUEDA SECUENCIAL
Consiste en revisar elemento por elemento hasta
encontrar el dato buscado, o en su defecto hasta llegar al
final de la lista de datos disponibles.

ALGORITMOS Y ESTRUCTURA DE DATOS

53

BUSQUEDA BINARIA
Este mtodo funciona solamente con arreglos ordenados.
Seleccionamos el elemento del centro o aproximadamente
el centro del vector. Si el valor a buscar no coincide con el
elemento seleccionado y es mayor que l, se continua la
bsqueda en la segunda mitad del vector.
Si el valor buscado es menor que el elemento
seleccionado, la bsqueda continua en la primera mitad del
vector. En ambos casos se calcula el nuevo elemento
central correspondiente a un nuevo intervalo de bsqueda,
repitindose el ciclo.

El proceso se repite hasta que se encuentra el valor a


buscar, o hasta que el intervalo de bsqueda sea nulo, lo
que quiere decir que el elemento buscado no esta en el
vector.
ALGORITMOS Y ESTRUCTURA DE DATOS

54

BUSQUEDA BINARIA

ALGORITMOS Y ESTRUCTURA DE DATOS

55