Ordenamiento Shell C++ en un arreglo

  Arreglos en c++ ejercicios resueltos

Mediante programación en C++, realizar un programa que permita ordenar datos, a través el método de ordenamiento de Shell usando estructura de datos.

#include<iostream.h>
#include<conio.h>
#include<string.h>
#define MAX 50
struct ordenamiento
{int elem ;
};
void leerarray(int,struct ordenamiento []);
void shell(int,struct ordenamiento []);
void muestra (int,struct ordenamiento []);
void main()
{
int n;
struct ordenamiento orden[MAX];
cout<<"Ingrese limite del arreglo:";
cin>>n;
leerarray(n,orden);
shell (n,orden);
cout<<endl<<"El arreglo ordenado es:"<<endl;
muestra(n,orden);
getch();
}
void leerarray(int n,struct ordenamiento a[])
{ for(int i=0;i<n;i++)
{
cout<<"Ingrese elemento "<<i<<":";
cin>>a[i].elem;
}
}
void shell (int n,struct ordenamiento a[])
{
int i,band,salto;
struct ordenamiento tem;
for(salto=n/2;salto>0;salto=salto/2)
do{band=0;
for(i=0;i<n-salto;i++)
if(a[i].elem>a[i+salto].elem)
{tem=a[i];a[i]=a[i+salto];a[i+salto]=tem; band=1;}
}while(band);
}
void muestra (int n,struct ordenamiento a[])
{
for(int i=0;i<n;i++)
cout<<" "<<a[i].elem;
}
Ordenamiento Shell en un arreglo

Para descargar el ejercicio:

Continuando con ejercicios en C++, les comparto el siguiente post: Cambiar matriz en c++

NOTA: Ordenamiento Shell en un arreglo, el ejercicio desarrollado en este post es a través del programa Borland C++. Para obtener el programa, clic en el siguiente enlace: Descargar Borland