La Web Imágenes Vídeos Noticias Grupos Libros Gmail Más »
Grupos visitados recientemente | Ayuda | Acceder
Página principal de Grupos de Google
Mensaje del debate Un conflicto interminable con la prueba de escritorio y el shellSort

Ver analizado - Mostrar sólo mensaje de texto

MIME-Version: 1.0
Message-ID: <fbf63d51-1977-4903-bb34-1f739966a728@e67g2000hsc.googlegroups.com>
Date: Tue, 4 Dec 2007 10:46:21 -0800 (PST)
Received: by 10.100.177.15 with SMTP id z15mr335066ane.1196793981923; Tue, 04 
	Dec 2007 10:46:21 -0800 (PST)
X-IP: 190.42.25.67
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET 
	CLR 1.1.4322; .NET CLR 2.0.50727),gzip(gfe),gzip(gfe)
Subject: Un conflicto interminable con la prueba de escritorio y el shellSort
From: sAfOrAs <dsafor...@gmail.com>
To: "=?ISO-8859-1?Q?Somos_C=F3digo_Libre?=" <somoscodigolibre@googlegroups.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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 "<<largo<<endl;
	}while(n<=3D0||n>largo);

    leeCadena(n,A);
    ordenShell(A,n);
    muestraCadena(n,A);

}

Crear un grupo - Grupos de Google - Página principal de Google - Condiciones del servicio - Política de privacidad
©2009 Google