Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - BeFree

#11
Hola, tengo que hacer un algoritmo que ordene N números naturales generados en forma aleatoria. Tiene que ejecutarse para 1000, 10000 y 100000. Escribí un código y al ejecutarlo lo hace sin problemas para 1000 y 10000, pero para 100000 no me muestra el resultado, y no puedo hallar el error.
Si me pueden ayudar se los agradecería. Ah trabajo en un entorno linux, que es una virtualización sobre window.

Acá les dejo el código que escribí:

//Secuencial - OrdenacionSectp5.c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>

/*Declaración de variables globales*/
unsigned long int MAX=100000;

/*Generar datos*/
void CagarDatos(unsigned long int v[], unsigned long int N)
{
   unsigned long int i,j;
   int duplicado;
   unsigned long int num;
 
   for(i=0; i<N; i++)
   {
      num=1+rand()%N;
      duplicado=0;

       for(j=0; j<=i; j++)
      {
         if(num==v[j])
         {
            duplicado=1;
            break;
         }
      }
      if(duplicado==1)
         i--;
      else
         v=num;
   }
}

/*Ordenar Datos de menor a mayor mediante método burbuja*/
void OrdenarDatos(unsigned long int v[], unsigned long int N)
{
   unsigned long int i,j;
   unsigned long int buffer;

   for(i=0; i<N-1; i++)
  {
     for(j=i+1; j<N; j++)
    {
        if(v>v[j])
       {
          buffer=v[j];
          v[j]=v;
          v=buffer;
       }
    }
  }
}

/*Muestra los datos cargados*/
void MostrarDatos(unsigned long int v[], unsigned long int N)
{
   unsigned long int i;
   
   printf("\n============================================");
   printf("\nNúmeros cargados:\n ");
   for(i=0; i<N; i++)
     printf("-%ld", v);
}

/*Principal*/
int main()
{
   unsigned long int ordenar[MAX];
   time_t inicio, fin;

   srand(time(NULL));
   CagarDatos(ordenar, MAX);
   inicio=time(NULL);
   OrdenarDatos(ordenar, MAX);
   MostrarDatos(ordenar, MAX);

/*Finalización*/
   printf("\n============================================");
   printf("\nLa cantidad de datos ordenados es: %ld", MAX);
   fin=time(NULL);
   printf("\nEl programa ha tardado: %.f segundos", difftime(fin,inicio));
   printf("\n=========================================\n\n");
   return 0;
}