ORDENACION POR EL METODO DE LA SACUDIDA (SHAKER SORT)

Slides:



Advertisements
Presentaciones similares
Capítulo 2 Algoritmos.
Advertisements

Unidad 6 Métodos de Ordenamiento Internos
Curso de java básico (scjp)
Método de ordenación por inserción
Complejidad Computacional
Complejidad Computacional
Diseño y análisis de algoritmos
Ordenamiento de Arreglos
ORDENACION POR SELECCIÓN DIRECTA
Complejidad de Algoritmos
ALGORITMOS DE ORDENAMIENTO
Diseño y análisis de algoritmos
Paricial IV Ing. Esmeralda Elizabeth Rodríguez Rodríguez
Programación y Estructuras de Datos
Ordenación rápida (QuickSort)
ÁRBOLES BINARIOS DE BUSQUEDA
implementar (a veces es imposible) si se utilizan datos simples.
Operaciones sobre un árbol
Curso de Programación 1 Plan 97
MÉTODOS DE CLASIFICACION
PROGRAMACION DE ESTRUCTURAS DE DATOS IV. MÉTODOS DE ORDENAMIENTO.
VECTORES.
METODO DE ORDENAMIENTO POR SELECCIÓN.
METODOS DE ORDENAMIENTO. DESCRIPCIÓN DEL PROBLEMA Se tiene un conjunto desordenado de valores del mismo tipo. Se desea construir un algoritmo para transformar.
ARBOLES PARCIALMENTE ORDENADOS ESTRUCTURAS DE DATOS.
Cont. Arbol Binario de Búsqueda (2). Sobre los recorridos Las versiones recursivas de los recorridos son costosas debido a la gran cantidad de llamadas.
Ordenación, Clasificación
Medición y rendimientos de Algoritmos
Semana 5 Subprogramas..
Unidad II Aplicaciones con Arreglos en Java y C++
Estructuras de Iteracion (Repetitivas ) while , for,, do-while
M.C. Yalu Galicia Hdez. (FCC/BUAP)
Heaps Mauro Maldonado Abril/2005. Introducción La estructura heap es frecuentemente usada para implementar colas de prioridad. En este tipo de colas,
Algoritmos para Ordenar datos
Introducción al análisis de algoritmos
Algoritmos.
Tema 8b Búsqueda y ordenación en arreglos. Ordenación Es un proceso que altera el orden de los elementos de un conjunto. Tiene asociada una relación de.
Ordenación y Búsquedas1UVM Ordenación y Búsqueda.
Objetivo: Facilitar la búsqueda de los elementos del conjunto ordenado
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
Estructura de Datos y Algoritmos
COMPUTACION 2009 Clase 6 Clase 7.
Árboles binarios de búsqueda
Definición: Reorganizar un conjunto dado de objetos en una secuencia especificada Objetivo: Facilitar la búsqueda de los elementos del conjunto ordenado.
Búsqueda y ordenación Programación II 7-8 de enero de 2009.
INSTITUTO TECNOLOGICO DE APIZACO
Ordenación y Búsqueda.
Figure: Algoritmos Conceptos básicos. Programación: 1.Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una.
Arreglos Programación I MC Beatriz Beltrán Martínez.
1. Desarrollo de Programas iterativos usando invariante
Análisis de Algoritmos 2
Algoritmos de Ordenamiento y Complejidad
Quick Sort Estructura de Datos: Métodos de ordenamiento. José Alejandro Leal González Verito no m c tu nombre completo jejeje aquí va!!!
Ordenamiento por Intercambio Directo
Ordenamiento en lenguaje c
METODOS DE BUSQUEDA EN C++ Oscar Michel Ruiz León
Árboles Binarios de Búsqueda (ABB)
Computación I. CI-2125 Tema VII
Algoritmo.
ORDENAMIENTO DE DATOS Jorge Méndez Sánchez Eliúh Cuecuecha Hernández
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso.

ESTRUCTURAS DE DATOS “Conceptualización de estructuras de datos” Por: Eduardo Robayo.
Introducción a la Programación Orientada a Objetos Ordenamiento Ordenar una estructura de datos consiste en reacomodar sus elementos de manera tal que.
Programación Básica Bachillerato Ingeniería en Informática Lic. Carlos H. Gutiérrez León.
1 Ordenación, Clasificación Introducción Algoritmos Complejidad.
Tema 7 Arreglos Parte 3.
Método de Ordenamiento por Inserción. El método recorrer el Vector de Izquierda a Derecha, tomando la posición Actual y Comparándola con su Izquierda.
ALGORITMO DE ORDENAMIENTO POR BURBUJA. El método de la burbuja es uno de los mas simples, es tan fácil como comparar todos los elementos de una lista.
ORDENAMIENTO POR EL MÉTODO DEL SHAKER SORT (SACUDIDA)
Transcripción de la presentación:

ORDENACION POR EL METODO DE LA SACUDIDA (SHAKER SORT)

Primera pasada Primera etapa: De derecha a izquierda : Se trasladan los elementos mas pequeños hacia la parte izquierda del arreglo, almacenando en una variable la posición del último elemento intercambiado

A: 15 67 08 16 44 27 12 35 PRIMERA PASADA Primera etapa (de derecha a izquierda): A[7] > A[8] (12>35) no hay intercambio A[6] > A[7] (27>12) si hay intercambio A[5] > A[6] (44>12) si hay intercambio A[4] > A[5] (16>12) si hay intercambio A[3] > A[4] (08>12) no hay intercambio A[2] > A[3] (67>08) si hay intercambio A[1] > A[2] (15>08) si hay intercambio La ultima posición del intercambio de derecha a izquierda es 2. Luego de la primera etapa de la primera pasada, el arreglo queda de la siguiente forma: A: 08 15 67 12 16 44 27 35

Segunda etapa: De izquierda a derecha: Se trasladan los elementos más grandes hacia la parte derecha del arreglo, almacenando en otra variable la posición del último elemento intercambiado.

A: 08 15 67 12 16 44 27 35 Segunda etapa (de izquierda a derecha): A[2] > A[3] (15>67) no hay intercambio A[3] > A[4] (67>12) si hay intercambio A[4] > A[5] (67>16) si hay intercambio A[5] > A[6] (67>44) si hay intercambio A[6] > A[7] (67>27) si hay intercambio A[7] > A[8] (67>35) si hay intercambio Última posición de intercambio de izquierda a derecha:8. Luego de la segunda etapa de la primera pasada, el arreglo queda de la siguiente forma: A: 08 15 12 16 44 27 35 67

Primera etapa (de derecha a izquierda): SEGUNDA PASADA Primera etapa (de derecha a izquierda): A[6] > A[7] (27>35) no hay intercambio A[5] > A[6] (44>27) si hay intercambio A[4] > A[5] (16>27) no hay intercambio A[3] > A[4] (12>16) no hay intercambio A[2] > A[3] (15>12) si hay intercambio Última posición de intercambio de derecha a izquierda:3. A: 08 12 15 16 27 44 35 67

A: 08 12 15 16 27 44 35 67 Segunda etapa (de izquierda a derecha): A[3] > A[4] (15>16) no hay intercambio A[4] > A[5] (16>27) no hay intercambio A[5] > A[6] (27>44) no hay intercambio A[6] > A[7] (44>35) si hay intercambio Última posición de intercambio de izquierda a derecha:7. A: 08 12 15 16 27 35 44 67

ALGORITMO DE ORDENACION POR EL METODO DE LA SACUDIDA SACUDIDA DE (A,N) El algoritmo ordena los elementos del arreglo utilizando el método de la sacudida. A es un arreglo de N elementos I, IZQ, DER, K Y AUX son variables de tipo entero.

2.Repetir mientras DER ≥ IZQ 1. Hacer IZQ 2, DER N y K N 2.Repetir mientras DER ≥ IZQ 2.1 Repetir con I desde DER hasta ≥ IZQ {ciclo descendente} 2.1.1 Si A [I-1] > A [I] entonces Hacer AUX A [I-1], A [I-1] A [I], A [I] AUX y K I 2.1.2 {Fin del condicional del paso 2.1.1 } 2.2 {Fin del ciclo del paso 2.1} Hacer IZQ K + 1 2.3Repetir con I desde IZQ hasta ≤ DER {ciclo ascendente} 2.3.1 Si A [I-1] > A [1] entonces 2.3.2 {Fin del condicional del paso 2.3.1} Hacer DER k – 1 3. {Fin del ciclo 2} Ejemplo suponiendo A={ } N=5 1 2 3 4 5 20 10 1 7 30

Public void sacudida(int []A, int N){ int izq,der,k,aux; izq=1; der=N-1; k=N-1; while(der>=izq){ for(int i=der; i>=izq; i--){ if(A[i-1]> A[i]){ aux= A[i+1]; A[i+1]= A[i]; A[i]= aux; k=i; } izq= k+1; for(int i=izq; i<=der; i++){ der= k-1; } A= 1 2 3 4 20 3 4 8 2

Análisis de Eficiencia del método de la Sacudida o Shaker Sort El análisis del método de la Sacudida es muy complejo. Es necesario tener en cuenta tres factores que afectan directamente al tiempo de ejecución del algoritmo: a) Las comparaciones entre x[i-1] y x[i] que podemos llamar claves. b) Los intercambios entre las claves. c) Las pasadas que se realizan. Se ejemplifica a continuación. Rastreo    i = 4 i = 3 i = 2 i = 1 i = 4 x[0]  20  2 x[1] 3 x[2] 8 2 20 4 x[3] x[4]

Los estudios que se han realizado sobre el método de la Sacudida demuestran que en él sólo pueden reducirse las dobles comparaciones entre claves, pero debe recordarse que la operación de intercambio es una tarea más complicada y costosa que la de comparación. Por lo tanto, es posible afirmar que las hábiles mejoras realizadas sobre el método de burbuja (intercambio directo) sólo producen resultados apreciables si el arreglo está parcialmente ordenado (lo cual resulta difícil saber de antemano); pero si el arreglo está desordenado el método se comporta, incluso, peor que otros métodos directos como el de Inserción y el de Selección.