Está en la página 1de 5

Unidad 1 Actividad 4

Jose Angel Ramirez

ID: A00139710

Concepto de Shell
1. Algoritmo de ordenamiento shell: el metodo se denomina asi
en honor de su inventor donald shell. Su implementacion
original, requiere O(n2) comparaciones e inntercambios en el
peor caso, aunque un cambio menor presentado en el libro de
V.
Descripcion
El algoritmo shell es una nejora de la ordenacion por insercion,
donde se van comparando elementos distantes, al tiempo que se los
intercambian si corresponde. A medida que se aumentan los pasos,
el tamaño de los saltos disminuye.
El shell sort primero mueve los valores usando tamaños de espacio
gigantes, de manera que un valor pequeño se movera bastantes
posiciones hacia su posicion final, con solo unas poocas
comparaciones e intercambios.
Secuencia de espacios
La secuencia de espacios es una parte integral del algoritmo shell
sort. Cualquier secuencia incremental funcionaria siempre que el
ultimo elemento sea 1. el algoritmo comienza realizando un
ordenamiento por inserción ordinario garantizando que la lista final
estará ordenada.
Aunque esta secuencia Proporciona mejoras de rendimiento
significativas sobre los algoritmos cuadráticos como él Ordenamiento
por inserción se puede cambiar ligeramente para disminuir Más el
tiempo necesario medio y el del peor caso.
Jose Angel Ramirez ID: A00139710
Analisis del costo computacional
Aunque es fácil desarrollar un sentido intuitivo de cómo funciona
este algoritmo es muy difícil analizar su tiempo de ejecución
dependiendo de la elección de la secuencia de espacio shell short
tiene un tiempo de ejcuccion en el peor caso de O(n2).
Implementacion
A continuacion, se muestra el ordenamiento shell en algunos de los
lenguajes de programacion de alto nivel mas usados:
// ordenamiento por metodo shell public static void shellsort(int) a)
FOR (int increment=a. Length/2
Increment= (increment == 2? 1 (int) math round (increment/2.2))
Int temp=a (j)
A(j)= a(j)- increment)
A(j-increment)= temp;

Php
// ordenamiento por shell
01 ?php
02 function ordenamientoshell ($A,$n)
03 (
04 for ($inc= 1 ; $inc $n; $nc *3+1
05 while ($inc 0)
06 (
Jose Angel Ramirez ID: A00139710
07 for ($i=$inc=1 ; $n; $n; $i i++)
08 (
09 $j = $i
10 $temp=$A($i);
11 while (($j = $inc) && ($A($j- $inc) $temp
12 (
13 $A($j=$a($j- $inc)
14 $j =$j- $inc
15 )
16 $A ($j)= $temp
17 )
18 $inc
19 )
20 return $A;
21 )
22 function main ()
23 (
24 $vectorA=array(5,4,3,2,1)
25 $vectorB=ordenamientoshell($vectorA, sizeof($vectorA))
26 for($i=0;$i sizeof($vectorB);$i++
27 echo $vectorB ($i)”/n”;
Jose Angel Ramirez ID: A00139710
28 )
29 main()
30?

Phyton
1. #algoritmo de ordenamiento shell
2.
3. Def shellsort (lista):
4. “”"ordena la lista por metodo shell, o shellsort
5. Incremento= len (lista)/2
6. While (incremento 0)
7. For in range (incremento,len(lista))
8. J=1
9. Temporal=lista(i)
10. While (j=incremento) and (lista(j-incremento)temporal)
11. Lista (j)=lista (j-incremento)
12. J=j-incremento
13. Lista (j)=temporal
14. If(incremento==2): incremento=1
15. Else: incremento=int(incremento/2.2)
16. Return lista

Jose Angel Ramirez


ID: A00139710

También podría gustarte