![Ampliar imágen de perfil Imágen de perfil](/usr/43000/43585/profileImage.jpg?1412661345)
Algoritmo de ordenación Shell en C++![gráfica de visualizaciones gráfica de visualizaciones](/img/img.png?11.51)
C/Visual C
Publicado el 13 de Febrero del 2002 por Administrador (718 códigos)
69.465 visualizaciones desde el 13 de Febrero del 2002
Implementación del algoritmo de ordenación shell en C++.
/* -------------------------------------------------- */
/* 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.