SlideShare uma empresa Scribd logo
1 de 16
Algoritmos de Ordenamiento   ,[object Object],[object Object]
ESTRUCTURA  DE DATOS RONALD BARRERA L. ROLANDO QUIJIJE
El método de sacudida es  una optimización del método de intercambio directo o burbuja . En este algoritmo cada pasada tiene dos etapas.  En la primera etapa  "de derecha a izquierda" se trasladan los elementos más pequeños hacia la parte izquierda del arreglo, almacenando en una variable la posición del último elemento intercambiado.  Ordenamiento  ESTATICO I método de sacudida (Shaker sort)
En  la 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. El algoritmo termina cuando en una etapa no se producen intercambios o bien,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.
void sacudida (itemType a[], int N){     int i, j, izq, der, aux;       izq = 2; der = N; j = N;       do     {        for(i = der; i >= izq; i--)              if (a[i - 1] > a[i])             {  swap (a, i, i -1);                 j = i;             }        izq= j + 1;        for(i = izq; i <= der; i++)             if (a[i -1] > a[i])             { swap (a, i, i -1)                j = i;             }        der= j - 1;     } while (izq <= der);   } de sacudida (Shaker sort)
Ordenamiento  ESTATICO   II Ordenamiento por el  El método Shell es una versión mejorada del método de inserción directa . Este método también se conoce con el nombre de inserción con incrementos decrecientes. En el método de ordenación por inserción directa cada elemento se compara para su ubicación correcta en el arreglo, con los elementos que se encuentran en la parte izquierda del mismo. Si el elemento a insertares más pequeño que el grupo de elementos que se encuentran a su izquierda,es necesario efectuar entonces varias comparaciones antes de su ubicación.  método Shell
Shell propone que las comparaciones entre elementos se efectúen con saltos de mayor tamaño pero con incrementos decrecientes, así, los elementos quedarán ordenados en el arreglo más rápidamente.  void shellsort (itemType a[], int N) {     int i, j, h;     itemType v;     for (h = 1; h <= N/9; h = 3 * h + 1);     for (i = h +1; i <= N; i += 1)     {         v = a[i]; j = i;         while (j > h &&a[j- h] > v)            { a[j]= a[j - h]; j -= h;}          a[j] = v;      } }
ORDENAMIENTO  DINAMICO  II Quicksort ,[object Object],[object Object],[object Object]
[object Object],[object Object]
void quicksort (itemType a[], int left, int right) {    int i; Stack<int> sf(50);    for (;;)    {        while (right > left)        {            i = partition (a, left, right);            if (i - left > right - i)            {    sf.push (left);sf.push (i - 1); left = i + 1; }            else            {    sf.push (i + 1); sf.push (right); right = i - 1; }        }        if (sf.empty ()) break;        right = sf.pop (); left = sf.pop ();    } }
El ordenamiento por fusión consiste en combinar dos estructuras de datos ordenadas para crear una estructura ordenada de mayor tamaño. En muchas aplicaciones de procesamiento de  información se almacena un archivo ordenado al que se le añaden nuevos elementos de manera regular.  Normalmente se juntan cierta cantidad de entradas nuevas que posteriormente se agregan al archivo principal para proceder finalmente a reordenar todo el archivo. Este tipo de aplicaciones están especialmente hechas para fusión: Una estrategia mejor consiste en ordenar el conjunto de entradas nuevas y entonces fusionarlo con el archivo principal. Ordenamiento  DINAMICO  II por fusión (Mergesort)
Fusión Para comenzar, supongamos que contamos con dos arreglos de enteros ordenados a[1], ..., a[M] y b[1], ..., b[N] y deseamos fusionarlos en un tercer arreglo c[1], ..., c[M+N]. Entonces podemos utilizar el siguiente algoritmo: i = 1; j = 1; a[M+1] = itemMAX; b[N+1] = itemMAX; for (k = 1; k <= M + N; k++)    c[k] = (a[i] < b[j]) ? a[i++] : b[j++];
Fusión con listas encadenadas Sería deseable contar con un método que ordenara las listas en sitio, en vez de utilizar espacio extra proporcional a el tamaño del archivo fusionado. Realizar esto es factible pero resulta muy complicado lograrlo con una estructura de datos de arreglo por lo que optaremos por una lista encadenada que se adapta mejor a las exigencias de este algoritmo. struct node    {itemType key; struct node *next; }; struct node *z;
struct node *merge( struct node *a, struct node *b) {    struct node *c;    c = z;    do        if (a->key <= b->key)            {c->next = a; c = a; a = a->next; }        else            {c->next = b; c = b; b = b->next; }    while (c->key != z->key);    c = z->next; z ->next = z;    return c; } Se asume que las listas cuentan con un nodo cola centinela denominado z y que el elemento siguiente de este nodo apunta a sí mismo y el valor de su llave es igual a itemMAX;
Ordenamiento por fusión con listas struct node *mergesort( struct node *c) {    struct node *a, *b;    if (c->next != z)    {        a = c; b= c->next->next->next;        while (b != z)            {c = c->next; b = b->next->next;}        b = c->next; c->next = z;        return merge( mergesort (a), mergesort (b));    }    return c; }
F I N

Mais conteúdo relacionado

Mais procurados

Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.Ana Castro
 
Metodos Busqueda Interna
Metodos Busqueda InternaMetodos Busqueda Interna
Metodos Busqueda Internasawmuk
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacionLuis Igoodbad
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserciónAlvaro Enrique Ruano
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Juan Astudillo
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoTAtiizz Villalobos
 
Algoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoAlgoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoLutzo Guzmán
 
METODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTOMETODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTODaniel Guaycha
 
Ordenamiento burbuja
Ordenamiento burbujaOrdenamiento burbuja
Ordenamiento burbujaOscar Mora
 

Mais procurados (20)

Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Metodos Busqueda Interna
Metodos Busqueda InternaMetodos Busqueda Interna
Metodos Busqueda Interna
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
BUCKET SORT
BUCKET SORTBUCKET SORT
BUCKET SORT
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserción
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)
 
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Busqueda Binaria
Busqueda BinariaBusqueda Binaria
Busqueda Binaria
 
Algoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoAlgoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamiento
 
Metodo quicksort
Metodo quicksortMetodo quicksort
Metodo quicksort
 
Shell exposición
Shell exposiciónShell exposición
Shell exposición
 
Quicksort
QuicksortQuicksort
Quicksort
 
Presentacion pilas lista y colas
Presentacion pilas lista y colas  Presentacion pilas lista y colas
Presentacion pilas lista y colas
 
METODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTOMETODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTO
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Ordenamiento burbuja
Ordenamiento burbujaOrdenamiento burbuja
Ordenamiento burbuja
 
Burbuja Bidireccional
Burbuja BidireccionalBurbuja Bidireccional
Burbuja Bidireccional
 

Destaque

Destaque (20)

Algortimos De Ordenamiento
Algortimos De OrdenamientoAlgortimos De Ordenamiento
Algortimos De Ordenamiento
 
Ordenamiento shell
Ordenamiento shellOrdenamiento shell
Ordenamiento shell
 
Lección 2 . Uso de operadores en R
Lección 2 .  Uso de operadores en RLección 2 .  Uso de operadores en R
Lección 2 . Uso de operadores en R
 
Merge Sort
Merge SortMerge Sort
Merge Sort
 
Inecuaciones en r uedees
Inecuaciones en r uedeesInecuaciones en r uedees
Inecuaciones en r uedees
 
Bubble Sort
Bubble SortBubble Sort
Bubble Sort
 
Método de Ordenamiento Sort Shell
Método de Ordenamiento Sort ShellMétodo de Ordenamiento Sort Shell
Método de Ordenamiento Sort Shell
 
Horoscopo test1
Horoscopo test1Horoscopo test1
Horoscopo test1
 
Estadística con Lenguaje R: Sesión 8
Estadística con Lenguaje R: Sesión 8Estadística con Lenguaje R: Sesión 8
Estadística con Lenguaje R: Sesión 8
 
Estadística con Lenguaje R: Sesión 6
Estadística con Lenguaje R: Sesión 6Estadística con Lenguaje R: Sesión 6
Estadística con Lenguaje R: Sesión 6
 
Introduccion al Programa R
Introduccion al Programa RIntroduccion al Programa R
Introduccion al Programa R
 
TIPOS DE ARCHIVOS
TIPOS DE ARCHIVOSTIPOS DE ARCHIVOS
TIPOS DE ARCHIVOS
 
Insercion directa
Insercion directaInsercion directa
Insercion directa
 
Merge sort
Merge sortMerge sort
Merge sort
 
Como crear un merge (sobres y cartas personalizadas) por ljf 2012
Como crear un merge (sobres y cartas personalizadas) por ljf 2012Como crear un merge (sobres y cartas personalizadas) por ljf 2012
Como crear un merge (sobres y cartas personalizadas) por ljf 2012
 
Merge Sort
Merge SortMerge Sort
Merge Sort
 
Algoritmo por seleccion
Algoritmo por seleccionAlgoritmo por seleccion
Algoritmo por seleccion
 
Metodo burbuja jenny v.
Metodo burbuja   jenny v.Metodo burbuja   jenny v.
Metodo burbuja jenny v.
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Estadisticas Descriptivas e Inferencia utilizando R (Taller Intermedio) UPDATED
Estadisticas Descriptivas e Inferencia utilizando R (Taller Intermedio) UPDATEDEstadisticas Descriptivas e Inferencia utilizando R (Taller Intermedio) UPDATED
Estadisticas Descriptivas e Inferencia utilizando R (Taller Intermedio) UPDATED
 

Semelhante a Metodos De Ordenamiento

Unidad cinco estructura de datos
Unidad cinco estructura de datosUnidad cinco estructura de datos
Unidad cinco estructura de datosRené Sosa Arana
 
metodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdfmetodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdfjorgeulises3
 
Ordenar arreglos en java
Ordenar arreglos en javaOrdenar arreglos en java
Ordenar arreglos en javaeccutpl
 
Estructura de dato unidad 5
Estructura de dato unidad 5Estructura de dato unidad 5
Estructura de dato unidad 5lenithoz
 
Josemanueunidad4 investigacionmetodos
Josemanueunidad4 investigacionmetodosJosemanueunidad4 investigacionmetodos
Josemanueunidad4 investigacionmetodosK Manuel TN
 
Metodo de la burbuja en algoritmo
Metodo de la burbuja en algoritmo Metodo de la burbuja en algoritmo
Metodo de la burbuja en algoritmo ikky2345
 
Ordenamientos de vectores
Ordenamientos de vectoresOrdenamientos de vectores
Ordenamientos de vectoressirekarol
 
Metodos de odenamiento de vctores
Metodos de odenamiento de vctoresMetodos de odenamiento de vctores
Metodos de odenamiento de vctoresmishuhot
 
UNIDAD IV - metodos de busqueda
UNIDAD IV - metodos de busquedaUNIDAD IV - metodos de busqueda
UNIDAD IV - metodos de busquedaMaiky Kobatakane
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamientoMonica Canaza
 
Algoritmos Ordenamiento
Algoritmos OrdenamientoAlgoritmos Ordenamiento
Algoritmos OrdenamientoDaniel Guaycha
 
Unidad 1 1
Unidad 1   1Unidad 1   1
Unidad 1 1VivianaG
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busquedaOsirysRock
 

Semelhante a Metodos De Ordenamiento (20)

Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Unidad cinco estructura de datos
Unidad cinco estructura de datosUnidad cinco estructura de datos
Unidad cinco estructura de datos
 
metodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdfmetodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdf
 
Ordenar arreglos en java
Ordenar arreglos en javaOrdenar arreglos en java
Ordenar arreglos en java
 
Informe ordenamiento
Informe ordenamientoInforme ordenamiento
Informe ordenamiento
 
Estructura de dato unidad 5
Estructura de dato unidad 5Estructura de dato unidad 5
Estructura de dato unidad 5
 
Josemanueunidad4 investigacionmetodos
Josemanueunidad4 investigacionmetodosJosemanueunidad4 investigacionmetodos
Josemanueunidad4 investigacionmetodos
 
Informe insercion
Informe insercionInforme insercion
Informe insercion
 
Metodo de la burbuja en algoritmo
Metodo de la burbuja en algoritmo Metodo de la burbuja en algoritmo
Metodo de la burbuja en algoritmo
 
Ordenamientos de vectores
Ordenamientos de vectoresOrdenamientos de vectores
Ordenamientos de vectores
 
Metodos de odenamiento de vctores
Metodos de odenamiento de vctoresMetodos de odenamiento de vctores
Metodos de odenamiento de vctores
 
UNIDAD IV - metodos de busqueda
UNIDAD IV - metodos de busquedaUNIDAD IV - metodos de busqueda
UNIDAD IV - metodos de busqueda
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
 
Algoritmos Ordenamiento
Algoritmos OrdenamientoAlgoritmos Ordenamiento
Algoritmos Ordenamiento
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Unidad 1 1
Unidad 1   1Unidad 1   1
Unidad 1 1
 
Algoritmos divide y vencerás
Algoritmos divide y vencerásAlgoritmos divide y vencerás
Algoritmos divide y vencerás
 
Ordenamiento ppt
Ordenamiento pptOrdenamiento ppt
Ordenamiento ppt
 
Ordenacion y busqueda
Ordenacion y busquedaOrdenacion y busqueda
Ordenacion y busqueda
 

Mais de lichic

Manejo Eventos
Manejo EventosManejo Eventos
Manejo Eventoslichic
 
Algoritmos De Ordenacion
Algoritmos De OrdenacionAlgoritmos De Ordenacion
Algoritmos De Ordenacionlichic
 
Cap8 Programacion
Cap8 ProgramacionCap8 Programacion
Cap8 Programacionlichic
 
Cap1 Introduccion A La Robotica
Cap1 Introduccion A La RoboticaCap1 Introduccion A La Robotica
Cap1 Introduccion A La Roboticalichic
 
Sistemas
SistemasSistemas
Sistemaslichic
 
Introduccionseniales
IntroduccionsenialesIntroduccionseniales
Introduccionsenialeslichic
 
Series De Fourier
Series De FourierSeries De Fourier
Series De Fourierlichic
 
Graphapp
GraphappGraphapp
Graphapplichic
 
13 Creacion De Una Libreria Propia
13 Creacion De Una Libreria Propia13 Creacion De Una Libreria Propia
13 Creacion De Una Libreria Propialichic
 
16 Archivos
16 Archivos16 Archivos
16 Archivoslichic
 
14 Caracteres Y Cadenas
14 Caracteres Y Cadenas14 Caracteres Y Cadenas
14 Caracteres Y Cadenaslichic
 
Arreglos
ArreglosArreglos
Arregloslichic
 
Desarrollo Programas Estructurados
Desarrollo Programas EstructuradosDesarrollo Programas Estructurados
Desarrollo Programas Estructuradoslichic
 
Intro A Computadoras
Intro A ComputadorasIntro A Computadoras
Intro A Computadoraslichic
 
fundamentos de programacio
fundamentos de programaciofundamentos de programacio
fundamentos de programaciolichic
 
Toma%2 Bde%2 Bdecisiones
Toma%2 Bde%2 BdecisionesToma%2 Bde%2 Bdecisiones
Toma%2 Bde%2 Bdecisioneslichic
 
La%2 Badministracion%2 Ben%2 Bun%2 Bentorno%2 Bglobal
La%2 Badministracion%2 Ben%2 Bun%2 Bentorno%2 BglobalLa%2 Badministracion%2 Ben%2 Bun%2 Bentorno%2 Bglobal
La%2 Badministracion%2 Ben%2 Bun%2 Bentorno%2 Bgloballichic
 
1. %2 Bcultura
1. %2 Bcultura1. %2 Bcultura
1. %2 Bculturalichic
 
U 3 Ae. %2 Bentorno%2 Bempresarial
U 3 Ae. %2 Bentorno%2 BempresarialU 3 Ae. %2 Bentorno%2 Bempresarial
U 3 Ae. %2 Bentorno%2 Bempresariallichic
 
U 2 Ae. %2 Bevolucion%2 Bde%2 Bla%2 Badministaci%25 C3%2593 N
U 2 Ae. %2 Bevolucion%2 Bde%2 Bla%2 Badministaci%25 C3%2593 NU 2 Ae. %2 Bevolucion%2 Bde%2 Bla%2 Badministaci%25 C3%2593 N
U 2 Ae. %2 Bevolucion%2 Bde%2 Bla%2 Badministaci%25 C3%2593 Nlichic
 

Mais de lichic (20)

Manejo Eventos
Manejo EventosManejo Eventos
Manejo Eventos
 
Algoritmos De Ordenacion
Algoritmos De OrdenacionAlgoritmos De Ordenacion
Algoritmos De Ordenacion
 
Cap8 Programacion
Cap8 ProgramacionCap8 Programacion
Cap8 Programacion
 
Cap1 Introduccion A La Robotica
Cap1 Introduccion A La RoboticaCap1 Introduccion A La Robotica
Cap1 Introduccion A La Robotica
 
Sistemas
SistemasSistemas
Sistemas
 
Introduccionseniales
IntroduccionsenialesIntroduccionseniales
Introduccionseniales
 
Series De Fourier
Series De FourierSeries De Fourier
Series De Fourier
 
Graphapp
GraphappGraphapp
Graphapp
 
13 Creacion De Una Libreria Propia
13 Creacion De Una Libreria Propia13 Creacion De Una Libreria Propia
13 Creacion De Una Libreria Propia
 
16 Archivos
16 Archivos16 Archivos
16 Archivos
 
14 Caracteres Y Cadenas
14 Caracteres Y Cadenas14 Caracteres Y Cadenas
14 Caracteres Y Cadenas
 
Arreglos
ArreglosArreglos
Arreglos
 
Desarrollo Programas Estructurados
Desarrollo Programas EstructuradosDesarrollo Programas Estructurados
Desarrollo Programas Estructurados
 
Intro A Computadoras
Intro A ComputadorasIntro A Computadoras
Intro A Computadoras
 
fundamentos de programacio
fundamentos de programaciofundamentos de programacio
fundamentos de programacio
 
Toma%2 Bde%2 Bdecisiones
Toma%2 Bde%2 BdecisionesToma%2 Bde%2 Bdecisiones
Toma%2 Bde%2 Bdecisiones
 
La%2 Badministracion%2 Ben%2 Bun%2 Bentorno%2 Bglobal
La%2 Badministracion%2 Ben%2 Bun%2 Bentorno%2 BglobalLa%2 Badministracion%2 Ben%2 Bun%2 Bentorno%2 Bglobal
La%2 Badministracion%2 Ben%2 Bun%2 Bentorno%2 Bglobal
 
1. %2 Bcultura
1. %2 Bcultura1. %2 Bcultura
1. %2 Bcultura
 
U 3 Ae. %2 Bentorno%2 Bempresarial
U 3 Ae. %2 Bentorno%2 BempresarialU 3 Ae. %2 Bentorno%2 Bempresarial
U 3 Ae. %2 Bentorno%2 Bempresarial
 
U 2 Ae. %2 Bevolucion%2 Bde%2 Bla%2 Badministaci%25 C3%2593 N
U 2 Ae. %2 Bevolucion%2 Bde%2 Bla%2 Badministaci%25 C3%2593 NU 2 Ae. %2 Bevolucion%2 Bde%2 Bla%2 Badministaci%25 C3%2593 N
U 2 Ae. %2 Bevolucion%2 Bde%2 Bla%2 Badministaci%25 C3%2593 N
 

Metodos De Ordenamiento

  • 1.
  • 2. ESTRUCTURA DE DATOS RONALD BARRERA L. ROLANDO QUIJIJE
  • 3. El método de sacudida es una optimización del método de intercambio directo o burbuja . En este algoritmo cada pasada tiene dos etapas. En la primera etapa &quot;de derecha a izquierda&quot; se trasladan los elementos más pequeños hacia la parte izquierda del arreglo, almacenando en una variable la posición del último elemento intercambiado. Ordenamiento ESTATICO I método de sacudida (Shaker sort)
  • 4. En la segunda etapa &quot;de izquierda a derecha&quot; se trasladan los elementos más grandes hacia la parte derecha del arreglo,almacenando en otra variable la posición del último elemento intercambiado. El algoritmo termina cuando en una etapa no se producen intercambios o bien,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.
  • 5. void sacudida (itemType a[], int N){     int i, j, izq, der, aux;     izq = 2; der = N; j = N;     do     {        for(i = der; i >= izq; i--)              if (a[i - 1] > a[i])             {  swap (a, i, i -1);                 j = i;             }        izq= j + 1;        for(i = izq; i <= der; i++)             if (a[i -1] > a[i])             { swap (a, i, i -1)                j = i;             }        der= j - 1;     } while (izq <= der); } de sacudida (Shaker sort)
  • 6. Ordenamiento ESTATICO II Ordenamiento por el El método Shell es una versión mejorada del método de inserción directa . Este método también se conoce con el nombre de inserción con incrementos decrecientes. En el método de ordenación por inserción directa cada elemento se compara para su ubicación correcta en el arreglo, con los elementos que se encuentran en la parte izquierda del mismo. Si el elemento a insertares más pequeño que el grupo de elementos que se encuentran a su izquierda,es necesario efectuar entonces varias comparaciones antes de su ubicación. método Shell
  • 7. Shell propone que las comparaciones entre elementos se efectúen con saltos de mayor tamaño pero con incrementos decrecientes, así, los elementos quedarán ordenados en el arreglo más rápidamente. void shellsort (itemType a[], int N) {     int i, j, h;     itemType v;     for (h = 1; h <= N/9; h = 3 * h + 1);     for (i = h +1; i <= N; i += 1)     {         v = a[i]; j = i;         while (j > h &&a[j- h] > v)            { a[j]= a[j - h]; j -= h;}          a[j] = v;      } }
  • 8.
  • 9.
  • 10. void quicksort (itemType a[], int left, int right) {    int i; Stack<int> sf(50);    for (;;)    {        while (right > left)        {            i = partition (a, left, right);            if (i - left > right - i)            {    sf.push (left);sf.push (i - 1); left = i + 1; }            else            {    sf.push (i + 1); sf.push (right); right = i - 1; }        }        if (sf.empty ()) break;        right = sf.pop (); left = sf.pop ();    } }
  • 11. El ordenamiento por fusión consiste en combinar dos estructuras de datos ordenadas para crear una estructura ordenada de mayor tamaño. En muchas aplicaciones de procesamiento de  información se almacena un archivo ordenado al que se le añaden nuevos elementos de manera regular. Normalmente se juntan cierta cantidad de entradas nuevas que posteriormente se agregan al archivo principal para proceder finalmente a reordenar todo el archivo. Este tipo de aplicaciones están especialmente hechas para fusión: Una estrategia mejor consiste en ordenar el conjunto de entradas nuevas y entonces fusionarlo con el archivo principal. Ordenamiento DINAMICO II por fusión (Mergesort)
  • 12. Fusión Para comenzar, supongamos que contamos con dos arreglos de enteros ordenados a[1], ..., a[M] y b[1], ..., b[N] y deseamos fusionarlos en un tercer arreglo c[1], ..., c[M+N]. Entonces podemos utilizar el siguiente algoritmo: i = 1; j = 1; a[M+1] = itemMAX; b[N+1] = itemMAX; for (k = 1; k <= M + N; k++)    c[k] = (a[i] < b[j]) ? a[i++] : b[j++];
  • 13. Fusión con listas encadenadas Sería deseable contar con un método que ordenara las listas en sitio, en vez de utilizar espacio extra proporcional a el tamaño del archivo fusionado. Realizar esto es factible pero resulta muy complicado lograrlo con una estructura de datos de arreglo por lo que optaremos por una lista encadenada que se adapta mejor a las exigencias de este algoritmo. struct node    {itemType key; struct node *next; }; struct node *z;
  • 14. struct node *merge( struct node *a, struct node *b) {    struct node *c;    c = z;    do        if (a->key <= b->key)            {c->next = a; c = a; a = a->next; }        else            {c->next = b; c = b; b = b->next; }    while (c->key != z->key);    c = z->next; z ->next = z;    return c; } Se asume que las listas cuentan con un nodo cola centinela denominado z y que el elemento siguiente de este nodo apunta a sí mismo y el valor de su llave es igual a itemMAX;
  • 15. Ordenamiento por fusión con listas struct node *mergesort( struct node *c) {    struct node *a, *b;    if (c->next != z)    {        a = c; b= c->next->next->next;        while (b != z)            {c = c->next; b = b->next->next;}        b = c->next; c->next = z;        return merge( mergesort (a), mergesort (b));    }    return c; }
  • 16. F I N