fbpx
Wikipedia

Comb sort

En ciencias de la computación, el comb sort (comb=peine) es un algoritmo de ordenamiento relativamente simple diseñado por Wlodzimierz Dobosiewicz en 1980. Posteriormente fue redescubierto y popularizado por Stephen Lacey y Richard Box en un artículo publicado por la revista Byte en abril de 1991. El algoritmo comb sort mejora el algoritmo de ordenamiento de burbuja y rivaliza en velocidad con algoritmos más complejos como el Quicksort. La idea básica es eliminar tortugas, o pequeños valores cerca del final de la lista, ya que en el algoritmo de ordenamiento de burbuja esto reduce la velocidad de ordenamiento tremendamente. (Los conejos, grandes valores alrededor del inicio de la lista, no plantean un problema en el algoritmo de ordenamiento de burbuja.)

En el ordenamiento de burbuja, cuando dos elementos cualquiera se comparan, siempren tienen un espacio (distancia entre ellos) de 1. La idea básica del algoritmo comb sort es que el espacio pueda ser mucho mayor de uno. El ordenamiento Shell también se basa en esta idea, pero es una modificación del algoritmo de ordenamiento por inserción más que del algoritmo de ordenamiento de burbuja.

El espacio se inicia como la longitud de la lista a ordenar dividida por el factor de encogimiento (generalmente 1,3; véase debajo), y la lista se ordena con este valor (redondeado a la baja a un entero si es necesario) para el espacio. Después el espacio se divide por el factor de encogimiento de nuevo, la lista se ordena con este nuevo espacio, y el proceso se repite hasta que el espacio es 1. En este momento, el algoritmo comb sort continúa usando un espacio de 1 hasta que la lista está completamente ordenada. La etapa final del ordenamiento es así equivalente al algoritmo de ordenamiento de burbuja, pero en este momento la mayoría de las tortugas ya han sido tratadas, de manera que un algoritmo de ordenamiento de burbuja será eficiente.

Factor de encogimiento

El factor de encogimiento tiene un gran efecto en la eficiencia del algoritmo comb sort. En el artículo original, los autores sugirieron 1,3 después de probar algunas listas aleatorias y encontrarlo generalmente el más efectivo. Un valor muy pequeño reduce la velocidad del algoritmo porque se deben hacer más comparaciones, mientras que un valor demasiado grande puede que no elimine suficientes tortugas para que sea práctico.

El texto describe una mejora del algoritmo comb sort usando el valor base   como factor de encogimiento. También contiene una implementación en pseudocódigo con unas tablas de espacios predefinidos.

Combsort11

Con un factor de encogimiento alrededor de 1,3, sólo hay tres posibles maneras de que la lista de espacios acabe: (9, 6, 4, 3, 2, 1), (10, 7, 5, 3, 2, 1), o (11, 8, 6, 4, 3, 2, 1). Sólo el último de estos dos finales mata todas las tortugas antes de que el espacio se convierta en 1. Por lo tanto, se pueden hacer mejoras significativas en la velocidad si el espacio se establece en 11 siempre que sea 9 o 10. A esta variación se le llama Combsort11.

Si se usa cualquiera de la secuencias que comienza por 9 o 10, el paso final con un espacio de 1 es menos probable que haya ordenado los datos completamente, necesitando otro paso con un espacio de 1. Los datos están ordenados cuando no se hacen intercambios durante un paso con espacio = 1.

Ejemplo en pseudocódigo del algoritmo combsort11

function combsort11(array input) gap:= input.size //inicializar tamaño de espacio loop until gap = 1 and swaps = 0 //actualizar el valor del espacio para el siguiente rastreo if gap > 1 gap:= gap / 1.3 if gap = 10 or gap = 9 gap:= 11 end if end if 
i:= 0 swaps:= 0 //véase ordenamiento de burbuja para una explicación //un único "rastreo" sobre la lista de entrada loop until i + gap >= array.size if array[i] > array[i+gap] swap (array[i], array[i+gap]) swaps:= swaps + 1 end if i:= i + 1 end loop end loop end function

 


Véase también

  • Ordenamiento de burbuja, un algoritmo generalmente más lento, es la base del algoritmo comb sort.
  • Cocktail sort, un ordenamiento de burbuja bidireccional, es una variación del ordenamiento de burbuja que también trata el problema de las tortugas.

Enlaces externos

  • Implementaciones del algoritmo en Wikibooks (inglés)
  • Implementaciones del algoritmo en RosettaCode (inglés)
  •   Datos: Q133939
  •   Multimedia: Sort algorithms

comb, sort, ciencias, computación, comb, sort, comb, peine, algoritmo, ordenamiento, relativamente, simple, diseñado, wlodzimierz, dobosiewicz, 1980, posteriormente, redescubierto, popularizado, stephen, lacey, richard, artículo, publicado, revista, byte, abri. En ciencias de la computacion el comb sort comb peine es un algoritmo de ordenamiento relativamente simple disenado por Wlodzimierz Dobosiewicz en 1980 Posteriormente fue redescubierto y popularizado por Stephen Lacey y Richard Box en un articulo publicado por la revista Byte en abril de 1991 El algoritmo comb sort mejora el algoritmo de ordenamiento de burbuja y rivaliza en velocidad con algoritmos mas complejos como el Quicksort La idea basica es eliminar tortugas o pequenos valores cerca del final de la lista ya que en el algoritmo de ordenamiento de burbuja esto reduce la velocidad de ordenamiento tremendamente Los conejos grandes valores alrededor del inicio de la lista no plantean un problema en el algoritmo de ordenamiento de burbuja En el ordenamiento de burbuja cuando dos elementos cualquiera se comparan siempren tienen un espacio distancia entre ellos de 1 La idea basica del algoritmo comb sort es que el espacio pueda ser mucho mayor de uno El ordenamiento Shell tambien se basa en esta idea pero es una modificacion del algoritmo de ordenamiento por insercion mas que del algoritmo de ordenamiento de burbuja El espacio se inicia como la longitud de la lista a ordenar dividida por el factor de encogimiento generalmente 1 3 vease debajo y la lista se ordena con este valor redondeado a la baja a un entero si es necesario para el espacio Despues el espacio se divide por el factor de encogimiento de nuevo la lista se ordena con este nuevo espacio y el proceso se repite hasta que el espacio es 1 En este momento el algoritmo comb sort continua usando un espacio de 1 hasta que la lista esta completamente ordenada La etapa final del ordenamiento es asi equivalente al algoritmo de ordenamiento de burbuja pero en este momento la mayoria de las tortugas ya han sido tratadas de manera que un algoritmo de ordenamiento de burbuja sera eficiente Indice 1 Factor de encogimiento 2 Combsort11 3 Ejemplo en pseudocodigo del algoritmo combsort11 4 Vease tambien 5 Enlaces externosFactor de encogimiento EditarEl factor de encogimiento tiene un gran efecto en la eficiencia del algoritmo comb sort En el articulo original los autores sugirieron 1 3 despues de probar algunas listas aleatorias y encontrarlo generalmente el mas efectivo Un valor muy pequeno reduce la velocidad del algoritmo porque se deben hacer mas comparaciones mientras que un valor demasiado grande puede que no elimine suficientes tortugas para que sea practico El texto describe una mejora del algoritmo comb sort usando el valor base 1 1 1 e f 1 247330950103979 displaystyle 1 1 frac 1 e varphi approx 1 247330950103979 como factor de encogimiento Tambien contiene una implementacion en pseudocodigo con unas tablas de espacios predefinidos Combsort11 EditarCon un factor de encogimiento alrededor de 1 3 solo hay tres posibles maneras de que la lista de espacios acabe 9 6 4 3 2 1 10 7 5 3 2 1 o 11 8 6 4 3 2 1 Solo el ultimo de estos dos finales mata todas las tortugas antes de que el espacio se convierta en 1 Por lo tanto se pueden hacer mejoras significativas en la velocidad si el espacio se establece en 11 siempre que sea 9 o 10 A esta variacion se le llama Combsort11 Si se usa cualquiera de la secuencias que comienza por 9 o 10 el paso final con un espacio de 1 es menos probable que haya ordenado los datos completamente necesitando otro paso con un espacio de 1 Los datos estan ordenados cuando no se hacen intercambios durante un paso con espacio 1 Ejemplo en pseudocodigo del algoritmo combsort11 Editarfunction combsort11 array input gap input size inicializar tamano de espacio loop until gap 1 and swaps 0 actualizar el valor del espacio para el siguiente rastreo if gap gt 1 gap gap 1 3 if gap 10 or gap 9 gap 11 end if end if i 0 swaps 0 vease ordenamiento de burbuja para una explicacion un unico rastreo sobre la lista de entrada loop until i gap gt array size if array i gt array i gap swap array i array i gap swaps swaps 1 end if i i 1 end loop end loop end function Vease tambien EditarOrdenamiento de burbuja un algoritmo generalmente mas lento es la base del algoritmo comb sort Cocktail sort un ordenamiento de burbuja bidireccional es una variacion del ordenamiento de burbuja que tambien trata el problema de las tortugas Enlaces externos EditarImplementaciones del algoritmo en Wikibooks ingles Implementaciones del algoritmo en RosettaCode ingles Datos Q133939 Multimedia Sort algorithms Obtenido de https es wikipedia org w index php title Comb sort amp oldid 134412475, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos