Página principal de Grupos de Google
Ayuda | Acceder
Mensaje del debate Un conflicto interminable con la prueba de escritorio y el shellSort
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
Tu respuesta no se ha enviado.
Tu entrada se ha publicado correctamente.
sAfOrAs  
Ver perfil
 Más opciones 4 dic 2007, 13:46
De: sAfOrAs <dsafor...@gmail.com>
Fecha: Tue, 4 Dec 2007 10:46:21 -0800 (PST)
Local: Mart 4 dic 2007 13:46
Asunto: Un conflicto interminable con la prueba de escritorio y el shellSort
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);

}


    Responder al autor    Reenviar  
Debes registrarte antes de enviar mensajes.
Para enviar una entrada, antes deberás formar parte del grupo.
Antes de enviar entradas, actualiza tu alias en la configuración de la suscripción.
No dispones del permiso necesario para enviar entradas.

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