// Ordenamiento Shell
// Codificado por Beastieux
#include <iostream>
#include "leearreglo.h"
using namespace std;
#define largo 50
void ordenShell(int A[], int n)
{
int i, j, inc, temp;
for (inc = 1; inc < n; inc = inc * 3 + 1);
while (inc > 0)
{
for (i = inc; i < n; i++)
{
j = i;
temp = A[i];
while ((j >= inc) && (A[j - inc] > temp))
{
A[j] = A[j - inc];
j = j - inc;
}
A[j] = temp;
}
inc /= 2;
}
}
int main()
{
int A[largo], n;
do {
cout << "Cantidad de numeros a ingresar: ";
cin >> n;
if (n <= 0 || n > largo)
cout << "Debe ingresar un valor > a 0 y < a " << largo << endl;
} while (n <= 0 || n > largo);
leeCadena(n, A);
ordenShell(A, n);
muestraCadena(n, A);
return 0;
}
Relacionado
esos hijos de perra me mintieron 🙁 {>:v
necesito un programa completo que utilice el metodo de ordenamiento shell porfa es urgente .. tengo que ´pasar a exponerlo
Tus necesidades no son problema mío.
Tiene un error. No asigna el valor de la variable temp a la posición del arreglo que debe ir
funciona correctamente si acomodamos bien las 2 funciones que tiene. pero lo que no entiendo es: #include «leearreglo.h» como funciona???
#include
using namespace std;
#define largo 50
void ordenShell(int A[],int n)
{
int i, j, inc, temp;
for(inc = 1 ; inc 0)
{
for (i=inc; i = inc) && (A[j-inc] > temp))
{
A[j] = A[j – inc];
j = j – inc;
}
A[j] = temp;
}
inc/= 2;
}
}
void leeCadena(int cant,int n[])
{
int i;
for(i=0;i<cant;i++)
{
cout<<"Ingresa numero "<<i+1<>n[i];
}
}
void muestraCadena(int cant,int n[])
{
int i;
for(i=0;i<cant;i++)
{
cout<<n[i]<<" ";
}
}
int main ()
{
int A[largo],n;
do{
cout<>n;
if(nlargo)
cout< a 0 y < a "<<largo<<endl;
}while(nlargo);
leeCadena(n,A);
ordenShell(A,n);
muestraCadena(n,A);
}
porq no respondess dudas
amen…
Sii, marca error al implementarlo en Dev C++ por que, otra cosa, por que cortas la linea de programación e inicias una vez mas con iostream dentro del mismo programa eso no lo entendí, despues de la linea 47??
yo se que pasa
si te fijas al principo del programa tiene una libreria que se llama como enpieza el segundo programa, el segundo programa lo deves de guardar como libreria en la misma carpeta donde guardaste el programa principal, cuando copies el programa principal no copies la segunda parte y ya funciona normal
hola cuando lo copio y lo pego a c++ me marca error por que ayudenme porfavor
Pues vele aprendiendo en vez de esperar que COPIANDO y PEGANDO queden los programas!!
Eso es cierto programar consiste en crear no en copiar y pegar
por que marca error al ejecutarlo en dev cc++
ejecuto el programa en dev c++ y me sale error
Buena tarde
Soy novato en el uso de pcbsd 9.1, lo he instalado en una lap top gateway ID59C, particionando el disco duro, se instalo muy bien pero al momento de usar la funcion inalambrica simplemente no funciona, de igual forma lo intente con un smartphone pero ni siguiera lo detecto.
Podrian sugerir alguna forma de hacer que funcione el inalambrico?
HOLA AMIGO NO SE SI ME PUEDAS A IMPLEMENTAR EL MÉTODO DE SELECCIÓN EN MI PROGRAMA
Oye porque pones esta linea
for(inc = 1 ; inc<n;inc=inc*3+1);
exactamente porq multiplicas por tres el inc y luego le sumas 1????