Mensaje del debate
Un conflicto interminable con la prueba de escritorio y el shellSort
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Message-ID: <d6313efe-db09-4483-87e5-c5dc198e69dc@x29g2000prg.googlegroups.com>
Date: Fri, 21 Dec 2007 09:43:33 -0800 (PST)
Received: by 10.100.141.5 with SMTP id o5mr18005and.11.1198259013772; Fri, 21
Dec 2007 09:43:33 -0800 (PST)
In-Reply-To: <fbf63d51-1977-4903-bb34-1f739966a728@e67g2000hsc.googlegroups.com>
X-IP: 190.40.25.228
References: <fbf63d51-1977-4903-bb34-1f739966a728@e67g2000hsc.googlegroups.com>
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6)
Gecko/20071008 Ubuntu/7.10 (gutsy) Firefox/2.0.0.6,gzip(gfe),gzip(gfe)
Subject: Re: Un conflicto interminable con la prueba de escritorio y el
shellSort
From: miguelcrux <miguelc...@gmail.com>
To: "=?ISO-8859-1?Q?Somos_C=F3digo_Libre?=" <somoscodigolibre@googlegroups.com>
Guay!, mucho C
On 4 dic, 13:46, sAfOrAs <dsafor...@gmail.com> wrote:
> Como andan todos, a continuaci=F3n les presento este c=F3digo 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=E9todo shell, pero con algunos artificios
> como el de la linea: <code>for(inc =3D 1 ; inc<n;inc=3Dinc*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=E1n 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=F3digo para que lo revisen.
> la libreria est=E1 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 =3D 1 ; inc<n;inc=3Dinc*3+1);
>
> while (inc > 0)
> {
> for (i=3Dinc; i < n; i++)
> {
> j =3D i;
> temp =3D A[i];
> while ((j >=3D inc) && (A[j-inc] > temp))
> {
> A[j] =3D A[j - inc];
> j =3D j - inc;
> }
>
> A[j] =3D temp;
> }
>
> inc/=3D 2;
> }
>
> }
>
> void main ()
> {
> int A[largo],n;
> do{
> cout<<"Cantidad de numeros a ingresar: ";cin>>n;
> if(n<=3D0||n>largo)
> cout<<"Debe ingresar un valor > a 0 y < a "<<larg=
o<<endl;
> }while(n<=3D0||n>largo);
>
> leeCadena(n,A);
> ordenShell(A,n);
> muestraCadena(n,A);
>
> }