Metodos de Ordenamiento_programacion

Embed Size (px)

Citation preview

  • 8/18/2019 Metodos de Ordenamiento_programacion

    1/6

    METODOS DE ORDENAMIENTO

    Debido a que las estructuras de datos son utilizadas para almacenar información,

    para poder recuperar esa información de manera eficiente es deseable que aquella esté

    ordenada. Existen varios métodos para ordenar las diferentes estructuras de datos

    básicas.

    En general los métodos de ordenamiento no son utilizados con frecuencia, en

    algunos casos sólo una vez. Hay métodos muy simples de implementar que son tiles en

    los casos en dónde el n mero de elementos a ordenar no es muy grande !e", menos de

    #$$ elementos%. &or otro lado 'ay métodos sofisticados, más dif(ciles de implementar

    pero que son más eficientes en cuestión de tiempo de e"ecución.

    )os métodos sencillos por lo general requieren de aproximadamente n x n pasos

    para ordenar n elementos.

    )os métodos simples son* insertion sort !o por inserción directa% selection sort,

    bubble sort, y s'ellsort, en dónde el ltimo es una extensón al insertion sort, siendo más

    rápido. )os métodos más comple"os son el quic+ sort, el 'eap sort, radix y address

    calculation sort. El ordenar un grupo de datos significa mover los datos o sus referencias

    para que queden en una secuencia tal que represente un orden, el cual puede ser

    numérico, alfabético o incluso alfanumérico, ascendente o descendente.

    -e 'a dic'o que el ordenamiento puede efectuarse moviendo los registros con las

    claves. El mover un registro completo implica un costo, el cual se incrementa conforme

    sea mayor el tama o del registro. Es por ello que es deseable evitar al máximo el

    movimiento de los registros. /na alternativa es el crear una tabla de referencias a los

    registros y mover las referencias y no los datos. 0 continuación se mostrarán los

    métodos de ordenamiento empezando por el más sencillo y avanzando 'acia los mássofisticados

    )a eficiencia de los algoritmos se mide por el n mero de comparaciones e intercambios

    que tienen que 'acer, es decir, se toma n como el n mero de elementos que tiene el

    arreglo a ordenar y se dice que un algoritmo realiza 1!n2% comparaciones cuando

    compara n veces los n elementos, n x n 3 n2.

  • 8/18/2019 Metodos de Ordenamiento_programacion

    2/6

    ORDENAMIENTO DE BURBUJA

    )a Ordenación de burbuja !Bubble Sort en inglés% es un sencillo algoritmo de

    ordenamiento . 4unciona revisando cada elemento de la lista que va a ser ordenada con

    el siguiente, intercambiándolos de posición si están en el orden equivocado. Es

    necesario revisar varias veces toda la lista 'asta que no se necesiten más intercambios,

    lo cual significa que la lista está ordenada. Este algoritmo obtiene su nombre de la

    forma con la que suben por la lista los elementos durante los intercambios, como si

    fueran peque as 5burbu"as5. 6ambién es conocido como el método del intercambio

    directo . Dado que solo usa comparaciones para operar elementos, se lo considera un

    algoritmo de comparación, siendo el más sencillo de implementar.

    burbu"a

    7include8stdio.'9

    7include8conio.'9

    int a:;?@

    int i,",aux,n3;@

    void main!%=

    clrscr!%@

    for!i3$@i83n@iAA%=

    for!"3$@"8n >@"AA%=

    if!a:"

  • 8/18/2019 Metodos de Ordenamiento_programacion

    3/6

    ORDENAMIENTO SHE

    El ordenamiento S!ell !S!ell "ort en inglés% es un algoritmo de ordenamiento . El método se

    denomina S!ell en 'onor de su inventor Donald -'ell . -u implementación original,

    requiere 1 !n2% comparaciones e intercambios en el peor caso. /n cambio menor presentado en

    el libro de C. &ratt produce una implementación con un rendimiento de 1 !n log 2 n% en el peor

    caso. Esto es me"or que las 1 !n2% comparaciones requeridas por algoritmos simples pero peor

    que el óptimo 1 !n log n%. 0unque es fácil desarrollar un sentido intuitivo de cómo funciona este

    algoritmo, es muy dif(cil analizar su tiempo de e"ecución. El algoritmo -'ell sort me"ora el

    ordenamiento por inserción comparando elementos separados por un espacio de varias

    posiciones. Esto permite que un elemento 'aga 5pasos más grandes5 'acia su posición esperada.

    )os pasos m ltiples sobre los datos se 'acen con tama os de espacio cada vez más peque os. El

    ltimo paso del -'ell sort es un simple ordenamiento por inserción, pero para entonces, ya está

    garantizado que los datos del vector están casi ordenados.

    shell

    #include

    #include

    int a[5];

    int n=5;

    void main()

    {

    int inter=(n/ )!i="! ="!$="!au%;

    clrscr();

    &or (i="; i"){

    &or(i=inter;i=") {

    $= 'inter;i&(a[ ]

  • 8/18/2019 Metodos de Ordenamiento_programacion

    4/6

    ::;

    }

    else{

    au%=a[ ];

    a[ ]=a[$];

    a[$]=au%;

    = :inter;

    }

    }

    }

    inter=inter/ ;

    }

    &or(i=";i

  • 8/18/2019 Metodos de Ordenamiento_programacion

    5/6

    int i! !au%;void main(){clrscr();

    &or(i= ;i" 88 au%*

    #ara i3> !a"ta n > minimo 3 i@ #ara "3iA> !a"ta n Si lista:"< 8 lista :minimo< entonce" minimo 3 " &' ()* '& +in "i +in %ara

  • 8/18/2019 Metodos de Ordenamiento_programacion

    6/6

    Fntercambiar !lista:i