
Algoritmo de ordenación Shell en C++
C/Visual C
Publicado el 13 de Febrero del 2002 por Administrador (718 códigos)
69.820 visualizaciones desde el 13 de Febrero del 2002
Implementación del algoritmo de ordenación shell en C++.






(5)














/* -------------------------------------------------- *//* Implementación del algoritmo de ordenación Shell *//* ------ http://www.lawebdelprogramador.com -------- *//* -------------------------------------------------- */#include<stdio.h>
#define MAXC 7
void main()
{int array[MAXC]={6,1,5,2,3,4,0};
int cont,pasos,temp,i;
for(cont=MAXC/2;cont!=0;cont/=2)
for(pasos=1;pasos!=0;)
{ pasos=0;for(i=cont;i<MAXC;i++)
if(array[i-cont]>array[i])
{temp=array[i];
array[i]=array[i-cont];
array[i-cont]=temp;
pasos++;
} }}
























Ejemplo:
Tenemos el siguente array {55,36,19,24,25,50}
Salto=3:
Primera iteración:
{24,36,19,55,25,50} <-- Cambia el 55 y el 24.
{24,25,19,55,36,50} <-- Cambia el 36 y el 25.
Salto=1:
Primera iteración:
{24,19,25,55,36,50} <-- Cambia el 25 y el 19.
{24,19,25,36,55,50} <-- Cambia el 55 y el 36.
{24,19,25,36,50,55} <-- Cambia el 50 y el 55.
Segunda iteración:
{19,24,25,36,50,55} <-- Cambia el 19 y el 24.