El grupo al cual envías entradas es un grupo Usenet. Si envías mensajes a este grupo, cualquier usuario de Internet podrá ver tu dirección de correo electrónico
Como andan todos, a continuación les presento este código que fue
modificado en parte por unos amigos y yo, queriamos enternder el
algoritmo, pese a que el c{odigo funciona perfectamente... Se trata de
un ordenamiento basado en el método shell, pero con algunos artificios
como el de la linea: <code>for(inc = 1 ; inc<n;inc=inc*3+1);</code>,
donde el inc incrementa acabada la ejecucion del algoritmo interno,
pese a ello, al hacer la prueba de escritorio parece que el programa
no tuviera un fin (se darán cuenta si lo hacen), o en todo caso a
pique que no me estoy dando cuenta del error que estoy cometiendo, de
todas maneras les paso el código para que lo revisen.
la libreria está en los repositorios...
#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;
}
}
void 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);
> Como andan todos, a continuación les presento este código que fue
> modificado en parte por unos amigos y yo, queriamos enternder el
> algoritmo, pese a que el c{odigo funciona perfectamente... Se trata de
> un ordenamiento basado en el método shell, pero con algunos artificios
> como el de la linea: <code>for(inc = 1 ; inc<n;inc=inc*3+1);</code>,
> donde el inc incrementa acabada la ejecucion del algoritmo interno,
> pese a ello, al hacer la prueba de escritorio parece que el programa
> no tuviera un fin (se darán cuenta si lo hacen), o en todo caso a
> pique que no me estoy dando cuenta del error que estoy cometiendo, de
> todas maneras les paso el código para que lo revisen.
> la libreria está en los repositorios...
> #include<iostream>
> #include"leearreglo.h"
> using namespace std;
> #define largo 50
> void ordenShell(int A[],int n)
> {
> void 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);
pues tengo otro codigo y otra prueba de escritorio k no lleva por decirlo asi a
un bucle sin fin, y lo comprobado, si lo deceas pasame el dato igual pa safi, saludos
http://www.cifras.com.br/midis/28953.mid > Date: Fri, 21 Dec 2007 09:43:33 -0800> Subject: Re: Un conflicto interminable con la prueba de escritorio y el shellSort> From: miguelc...@gmail.com> To: somoscodigolibre@googlegroups.com> > > Guay!, mucho C> > On 4 dic, 13:46, sAfOrAs <dsafor...@gmail.com> wrote:> > Como andan todos, a continuación les presento este código que fue> > modificado en parte por unos amigos y yo, queriamos enternder el> > algoritmo, pese a que el c{odigo funciona perfectamente... Se trata de> > un ordenamiento basado en el método shell, pero con algunos artificios> > como el de la linea: <code>for(inc = 1 ; inc<n;inc=inc*3+1);</code>,> > donde el inc incrementa acabada la ejecucion del algoritmo interno,> > pese a ello, al hacer la prueba de escritorio parece que el programa> > no tuviera un fin (se darán cuenta si lo hacen), o en todo caso a> > pique que no me estoy dando cuenta del error que estoy cometiendo, de> > todas maneras les paso el código para que lo revisen.> > la libreria está en los repositorios...> >> > #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;> > }> >> > }> >> > void 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);> >> > }> > _________________________________________________________________ Tecnología, moda, motor, viajes,…suscríbete a nuestros boletines para estar siempre a la última http://newsletters.msn.com/hm/maintenanceeses.asp?L=ES&C=ES&P=WCMaint...
> pues tengo otro codigo y otra prueba de escritorio k no lleva por decirlo > asi a un bucle sin fin, y lo comprobado, si lo deceas pasame el dato igual > pa safi, saludos
> > Date: Fri, 21 Dec 2007 09:43:33 -0800 > > Subject: Re: Un conflicto interminable con la prueba de escritorio y el > shellSort > > From: miguelc...@gmail.com > > To: somoscodigolibre@googlegroups.com
> > Guay!, mucho C
> > On 4 dic, 13:46, sAfOrAs <dsafor...@gmail.com> wrote: > > > Como andan todos, a continuación les presento este código que fue > > > modificado en parte por unos amigos y yo, queriamos enternder el > > > algoritmo, pese a que el c{odigo funciona perfectamente... Se trata de > > > un ordenamiento basado en el método shell, pero con algunos artificios > > > como el de la linea: <code>for(inc = 1 ; inc<n;inc=inc*3+1);</code>, > > > donde el inc incrementa acabada la ejecucion del algoritmo interno, > > > pese a ello, al hacer la prueba de escritorio parece que el programa > > > no tuviera un fin (se darán cuenta si lo hacen), o en todo caso a > > > pique que no me estoy dando cuenta del error que estoy cometiendo, de > > > todas maneras les paso el código para que lo revisen. > > > la libreria está en los repositorios...