método de selección

Upload: mateuce

Post on 03-Jun-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/11/2019 Mtodo de Seleccin

    1/11

    UNIVERSIDAD CENTRAL DEL ECUADOR

    FACULTAD DE INGENIERA CIENCIAS

    FSICASY MATEMTICA

    INGENIERA MATEMTICA

    Integrantes:

    Espinoza Gabriela Guamn Bryan Meneses Fernanda Morocho Jeison

    Asignatura: Programacin I

    Curso:Primer Semestre

    Paralelo:10

    Tema:

    Mtodo de Ordenamiento por Seleccin Directa

  • 8/11/2019 Mtodo de Seleccin

    2/11

    1

    Tabla de contenidos

    INTRODUCCIN .................................................................................................... 2

    OBJETIVOS DE LA INVESTIGACIN .................................................................... 3

    MARCO TERICO .................................................................................................. 4

    CARACTERSTICAS: .............................................................................................. 5

    PSEUDOCDIGO ................................................................................................... 6

    EJEMPLOS. ............................................................................................................ 7

    CONCLUSIONES .................................................................................................... 9

    RECOMENDACIONES ........................................................................................... 9

    BIBLIOGRAFA ..................................................................................................... 10

  • 8/11/2019 Mtodo de Seleccin

    3/11

    2

    INTRODUCCIN

    En computacin y matemticas un algoritmo de ordenamiento es un algoritmo quepone elementos de una lista o un vector en una secuencia dada por una relacin

    de orden, es decir, el resultado de salida ha de ser una permutacin oreordenamiento de la entrada que satisfaga la relacin de orden dada. Lasrelaciones de orden ms usadas son el orden numrico y el orden lexicogrfico.Ordenamientos eficientes son importantes para optimizar el uso de otrosalgoritmos (como los de bsqueda y fusin) que requieren listas ordenadas parauna ejecucin rpida. Tambin es til para poner datos en forma cannica y paragenerar resultados legibles por humanos.

    Se han desarrollado muchas tcnicas a nivel de programacin para clasificarelementos, cada una con caractersticas especficas, y con ventajas y desventajassobre las dems. Las veremos a continuacin.Los algoritmos de ordenamiento se pueden clasificar de acuerdo a sucomportamiento como sigue:

    Estable:Si el orden relativo de los elementos con la misma clave no se altera enel proceso de ordenacin

    Natural:Si funciona ptimamente cuando los elementos ya estn ordenados.

    Antinatural:Si funciona peor cuando los elementos estn ordenado

  • 8/11/2019 Mtodo de Seleccin

    4/11

    3

    OBJETIVOS DE LA INVESTIGACIN

    Realizar una investigacin detallada acerca del mtodo de seleccin paratener nociones claras sobre ste y poder as aplicarlo en la creacin deprogramas.

    Explicar la forma en que se aplica este mtodo mediante un pseudocdigoque indique cmo funciona.

    Ejecutar un video para reforzar los conocimientos adquiridos acerca de estemtodo.

  • 8/11/2019 Mtodo de Seleccin

    5/11

    4

    MARCO TERICO

    Ordenacin por seleccin directa (Selection Sort)

    El algoritmo de ordenamiento por el mtodo de seleccin directa es un algoritmorelativamente sencillo y uno de los ms fciles de recordar e implementar.

    Se basa en realizar varias pasadas, intentando encontrar en cada una de ellas elelemento que segn el criterio de ordenacin es mnimo y colocndoloposteriormente en su sitio.

    A efectos prcticos, no suele dar resultados buenos si se compara con otrosmtodos de ordenacin. Realiza una enorme cantidad de comparaciones, pero encontrapartida, muy pocos intercambios. Eso hace que su utilizacin se restrinja en

    general a dos situaciones: o bien necesitamos un algoritmo sencillito para ordenarunos pocos datos y cogemos ste mismo que no est mal y es facil de recordar, obien tenemos una situacin en la cual escribir en el array es mucho ms gravosoque leer, como puede ser un escenario en el que intervengan determinadosdispositivos de almacenamiento o memorias tipo flash, eeprom, etc. para elsoporte de los datos.

    Este algoritmo se basa en hacer comparaciones, as que para que realice sutrabajo de ordenacin son imprescindibles dos cosas: un array o estructura similarde elementos comparables y un criterio claro de comparacin, tal que dados dos

    elementos nos diga si estn en orden o no.

    Es un algoritmo no estable de ordenacin interna y sucomplejidad temporal en elpeor caso es del orden de O(n2) y en el mejor caso -que el array ya esttotalmente ordenado- pues tambin es (n2) siendo n el tamao del array aordenar... el caso es que ste algoritmo siempre hace el mismo nmero decomparaciones e intercambios para un n dado... as que no aprovecha una posibleordenacin parcial del array. En cuanto a la complejidad espacial, es muyahorrativo: tan solo necesita una variable temporal para realizar los intercambios,as que su gasto de memoria es constante, sea cual sea el tamao del array.

    Aunque se suele utilizar para ordenacin interna, puede usarse para ordenacinexterna si nos es imprescindible una complejidad espacial constante y muy baja.Esa situacin no suele darse, excepto, quiz, en pequeos dispositivos dotados deuna cantidad de memoria principal muy muy reducida y en los que adems, losdatos estn en un soporte cuya lectura sea mucho ms rpida que la escritura.

    http://latecladeescape.com/t/complejidad+temporalhttp://latecladeescape.com/t/complejidad+temporal
  • 8/11/2019 Mtodo de Seleccin

    6/11

    5

    CARACTERSTICAS:

    El algoritmo ubica elementos de un arreglo, en una secuencia, dada por

    una relacin de orden.

    Buscar el mnimo elemento entre la posicin i y el final de la lista.

    Intercambiar el mnimo con el elemento de la posicin i.

    Su implementacin es con ciclos anidados.1

    El algoritmo consiste en realizar varias pasadas sobre el array, logrando que en

    cada pasada el elemento de menor valor se coloque al principio del array en unsolo intercambio. En cada pasada se recorre la parte no ordenada del arrayrealizando comparaciones con objeto de buscar el elemento de menor valor. Unavez localizado, se intercambia por el primer elemento de la parte no ordenada, yentonces ya est en orden. Por eso, se suele implementar con dos bucles, unoanidado dentro del otro. El bucle exterior realiza las pasadas y el interior localiza elmenor elemento.

    Vamos a intentar ver informalmente el funcionamiento del algoritmo. Supondremosque el array tiene n elementos:

    Realizaremos n-1 pasadas. En cada una de ellas lograremos que elelemento de menor valor se site al principio. El motivo de realizar n-1pasadas y no n es que si en cada pasada logramos ordenar un elemento,cuando tengamos en orden los n-1 del principio del array el elemento quequeda al final del array es necesariamente el que nunca ha sido escogidocomo ms pequeo de todos... es decir, es el ms grande, y directamentese ha quedado el ltimo.

    En cada pasada recorreremos el array empezando por el elemento que anno tengamos en orden (en la primera pasada lo revisamos todo, pero en la

    segunda ya empezamos por el segundo elemento, ya que el primero estaren orden... y as sucesivamente), buscando el menor de todos loselementos que an estn sin ordenar. Cuando se haya localizado eseelemento, se intercambia con el primero de la parte sin ordenar.

    En la primera pasada, buscaremos el mnimo entre los n elementos.Cuando lo encontremos, lo ponemos en el primer lugar, y el elemento que

    1(Corrales, 1994)

  • 8/11/2019 Mtodo de Seleccin

    7/11

    6

    haba en primer lugar lo ponemos en el hueco que dej ese. Como es elmnimo, habremos logrado poner en orden un elemento y nos quedan los n-1 siguientes.

    En la segunda pasada, buscaremos el mnimo entre los n-1 elementos quenos quedan por ordenar. Cuando lo encontremos lo intercambiamos con el

    elemento de la segunda posicin. Ya tendremos ordenados dos elementosy nos quedarn n-2 por ordenar. En la tercera pasada haremos lo mismo con los n-2 ltimos elementos,

    logrando colocar el tercer elemento en orden... y as sucesivamente, hastaque tengamos colocados todos menos uno (n-1). Cuando estemos en esasituacin, el ltimo elemento tambin estar en orden, ya que ser el msgrande de todos, porque en ninguna de las n-1 pasadas ha sido escogidocomo mnimo.

    PSEUDOCDIGO

    //mtodo java de ordenacin por seleccinpublic static void seleccion(int A[]){

    int i, j, menor, pos, tmp;for (i = 0; i < A.length - 1; i++) // tomamos como menor el primero

    {menor = A[i]; // de los elementos que quedan por ordenarpos = i; // y guardamos su posicinfor (j = i + 1; j < A.length; j++) // buscamos en el resto

    {if (A[j] < menor) // del array algn elemento

    {menor = A[j]; // menor que el actualpos = j;}

    }if (pos != i){ // si hay alguno menor se intercambia

    tmp = A[i];A[i] = A[pos];A[pos] = tmp;

    }}

    El tiempo de ejecucin del algoritmo de ordenacin por seleccin es del orden O(n2)2

    2(Garcia, 2013)

  • 8/11/2019 Mtodo de Seleccin

    8/11

    7

    EJEMPLOS:

    Ejemplo 1:

    Supongamos que queremos ordenar estos valores con el algoritmo de seleccindirecta: 45, 52, 21, 37, 49, as pues, n=5

    1 pasada: buscamos entre los ltimos n (es decir, 5) elementos el menor detodos, y lo intercambiaremos con la primera posicin.

    45, 52, 21, 37, 49 Para buscar el menor, necesitaremos un bucle for querecorra los n ltimos elementos.45, 52, 21, 37, 49 El menor es el 21, colocado en tercera posicin.

    45, 52, 21, 37, 49 Lo intercambiamos con el de la primera posicin. 21, 52, 45, 37, 49 Ya tenemos uno en orden. Nos quedan los n -1 ltimos.

    2 pasada: buscamos entre los ltimos n-1 (es decir, 4) elementos el menor detodos, y lo intercambiaremos con la segunda posicin.

    21, 52, 45, 37, 49 Recorremos los cuatro ltimos y el menor es el 37.21, 37, 45, 52, 49 Lo intercambiamos con la segunda posicin y ya hay dos enorden.

    3 pasada: buscamos entre los ltimos n-2 (es decir, 3) elementos el menor de

    todos, y lo intercambiaremos con la tercera posicin.

    21, 37, 45, 52, 49 El menor es el 45, en tercera posicin.21, 37, 45, 52, 49 El 45 ya estaba en 3 posicin, as que al intercambiarlo conl mismo, se queda donde est. Ya tenemos tres en orden.

    4 y ltima pasada: buscamos entre los ltimos n-3 (es decir, 2) elementos elmenor de todos, y lo intercambiaremos con la cuarta posicin.

    21, 37, 45, 52, 49 El menor es el 49, en quinta posicin. 21, 37, 45, 49, 52 Lo intercambiamos con la cuarta posicin. Ya hay cuatro en

    orden.21, 37, 45, 49, 52 El ltimo est necesariamente en orden tambin.3

    3(La Tecla de Escape, 2012)

  • 8/11/2019 Mtodo de Seleccin

    9/11

    8

    Ejemplo 2:

    Vector antes:

    44, 55, 12, 42, 94, 18, 06, 67

    Mnimo en posicin 7 y tras intercambio: en posicin 7 y tras intercambio:intercambio:

    06, 55, 12, 42, 94, 18, 44, 67

    Mnimo en posicin 3 y tras intercambio: 3 y tras intercambio:

    06 12 55 42 94 18 44 67 06, 12, 55, 42, 94, 18, 44, 67

    Mnimo en posicin 6 y tras intercambio: 6 y tras intercambio:

    06, 12, 18, 42, 94, 55, 44, 67Mnimo en posicin 4 y tras 4 y tras intercambio:

    06, 12, 18, 42, 94, 55, 44, 67

    Mnimo en posicin 7 y tras intercambio: 7 y tras intercambio:

    06, 12, 18, 42, 44, 55, 94, 67

    Mnimo en posicin 6 y tras intercambio: 6 y tras intercambio:

    06, 12, 18, 42, 44, 55, 94, 67

    Mnimo en posicin 8 y tras intercambio: 8 y tras intercambio:

    06, 12, 18, 42, 44, 55, 67, 94

    Vector despus:

    06, 12, 18, 42, 44, 55, 67, 944

    4(Marroquin, 2010)

  • 8/11/2019 Mtodo de Seleccin

    10/11

    9

    CONCLUSIONES

    Es un mtodo lento ya que realiza numerosas comparaciones.

    Es un algoritmo sencillo y fcil de recordar e implementar ya que consiste

    ordenar los elementos de menor a mayor.

    RECOMENDACIONES

    Estructurar de manera correcta el algoritmo para que pueda ejecutarseadecuadamente el mtodo.

    Utilizar este mtodo en caso de que no se tenga una cantidad deelementos muy extensa ya que de lo contrario, al tener que realizar varioscambios de posicin puede resultar lento.

  • 8/11/2019 Mtodo de Seleccin

    11/11

    10

    BIBLIOGRAFA

    Corrales, M. (1994). Metodo de Seleccin. En M. Corrales, Lenguaje Logo III(pg. 201). Costa Rica:

    Editorial Universidad Estatal a distancia.

    Garcia, E. (18 de Abril de 2013). Programacin Java. Recuperado el 1 de Junio de 2014, de

    http://puntocomnoesunlenguaje.blogspot.com/2012/12/java-metodo-ordenacion-

    seleccion.html

    La Tecla de Escape. (17 de Agosto de 2012). La tecla de Escape. Recuperado el 1 de Junio de 2014,

    de

    http://latecladeescape.com/t/Ordenaci%C3%B3n+por+selecci%C3%B3n+directa+(SelectionSort)

    Marroquin, N. (2010). Metodo de seleccion. En N. Marroquin, Teas los pasos de un Hacker(pg.

    719). Quito- Ecuador: NMC. Research Cia. Linitada.