elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Tiempo de ejecución
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Tiempo de ejecución  (Leído 2,470 veces)
xavirus.g6

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Tiempo de ejecución
« en: 27 Noviembre 2013, 22:31 pm »

Tengo problemas con un programa que calcula el tiempo de ejecución de 4 métodos de ordenación. el error es..."ld returned 1 exit status" el programa es este...



#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int o,total;
//////////////////////////



//Metodo 1 BURBUJA//


 void _sort4() { /*Ordena por metodo burbuja*/
 FILE *archivo;
 int z=0;
 archivo = fopen("tiemposext.txt", "a");
 fprintf(archivo, "\nMetodo Burbuja.-\n");
 while (z<1){

 long RandInt(long li, long ls) /*Comienza a generar los 1.000 elementos aleatorios*/
 {
 return rand( ) % (ls-li+1)+li;
 }

 float total,inicio, final,ttotal;
 inicio=clock();// INICIO tiempo
 int i,n=1000,a[n],j,temp=0;
 printf("\nArreglo sin ordenar:\n");
 for(i=0;i<n; i++)
 {
 a=RandInt(0, 10000);
 printf("Posicion %i Cifra:%i \n",i,a);
 } /*Termina de generar los 1.000 elementos aleatorios*/


 printf("\nArreglo ordenado:\n");
 /*Metodo burbuja*/
 for(i=0;i<n;i++)
{
for(j=0;j<n-1;j++)
 {
 if(a[j]>a[j+1])
 {
 temp=a[j];
 a[j]=a[j+1];
 a[j+1]=temp;
 }
 }
 } /*Fin burbuja*/

 for(i=0;i<n; i++)
 {
 printf("Posicion %i Cifra :%i \n ",i,a);
 }
 final=clock(); // Fin tiempo
 total=(final-inicio)/(double) CLOCKS_PER_SEC;
printf("\n\nEl Tiempo es: %f\n",total );
ttotal = ttotal + total/1000;
 fscanf (archivo,"%f",&total );
 fprintf (archivo,"\n%f",total );

 z++;
 if(z==1)
 {fprintf (archivo, "\nEl promedio del metodo 1 es: %f ",ttotal );
}
 }
 fprintf(archivo,"\n");
 system("clear");
 fclose(archivo);
 }

//Metodo 2 SHELLSORT//


 void shellsort() {
 
FILE*archivo;
 archivo = fopen("tiemposext.txt", "a");
 fprintf(archivo, "\nMetodo Shellsort.-\n");

int z=0;
while (z<1)
 {
long RandInt(long li, long ls) /*Comienza a generar los 1.000 elementos aleatorios*/
{
return rand( ) % (ls-li+1)+li;
}
float total,inicio, final,ttotal;
inicio=clock();// Inicio tiempo

int i,n=1000,a[n],j,temp=0;
printf("\nArreglo sin ordenar:\n");
for(i=0;i<n; i++)
{
a=RandInt(0, 10000);
printf("posicion[%i] cifra:%i \n",i,a);
} /*Termina de generar los 1.000 elementos aleatorios*/


printf("\nArreglo ordenado:\n");

/*Metodo shellsort*/

int mas, aux;

mas = n/2;
while (mas > 0)
{
for (i=mas; i < n; i++)
{
j = i;
aux = a;
while ((j >= mas) && (a[j-mas] > aux))
{
a[j] = a[j - mas];
j = j - mas;
}
a[j] = aux;
}
mas /= 2;

}
/*Fin shellsort*/

for(i=0;i<n;i++)
{

printf("Posicion %i Cifra %i \n ",i,a);
}

final=clock(); // Fin tiempo
total=(final-inicio)/(double) CLOCKS_PER_SEC; // Tiempo total
 printf("\n\nEl Tiempo es: %f\n",total );
ttotal = ttotal + total/1000;
 fscanf (archivo, "%f",&total );
 fprintf (archivo, "\n%f",total );

 z++;
 if(z==1000)
 {fprintf (archivo, "\nEl promedio del metodo 2 es: %f ",ttotal );
}
}
 fprintf(archivo,"\n");
 system("clear");
 system("pause");
 
 fclose(archivo);
}
 
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//Método Quick Sort

void quicksort () {

FILE*archivo;
 archivo = fopen("tiemposext.txt", "a");
 fprintf(archivo, "\nMetodo Quicksort.-\n");

int z=0;
while (z<1)
 {
long RandInt(long li, long ls) /*Comienza a generar los 1.000 elementos aleatorios*/
{
return rand( ) % (ls-li+1)+li;
}
float total,inicio, final,ttotal;

 inicio=clock();// Inicio tiempo

 int i,n=1000,a[n],j,temp=0;
 printf("\nArreglo sin ordenar:\n");
 for(i=0;i<n; i++)
 {
 a=RandInt(0, 10000);
 printf("Posicion %i Cifra:%i \n",i,a);
 } /*Termina de generar los 1.000 elementos aleatorios*/

printf("\nArreglo ordenado:\n");

/* Metodo quicksort*/

void quick(int A[n],int inf, int sup){
     int elem_div = A;
     int temp ;
     int i = inf - 1 , j = sup;
     int cont = 1;

     if (inf >= sup)   
          return;
     while (cont)
          {
          while (A[++i] < elem_div);
          while (A[--j] > elem_div);
         
          if (i < j)
               {
               temp = A;
               A = A[j];
               A[j] = temp;
               }
          else
              cont = 0;
          }
     
     temp = A;
     A = A;
     A = temp;

     quick (A, inf, i - 1);
     quick (A, i + 1, sup);
     }

// fin metodo quicksort

for(i=0;i<n; i++)
 {
 printf("Posicion %i Cifra :%i \n ",i,a);
 }
 final=clock(); // Fin tiempo
 total=(final-inicio)/(double) CLOCKS_PER_SEC; // Tiempo total
 printf("\n\nEl Tiempo es: %f\n",total );
 ttotal = ttotal + total/1000;
 fscanf (archivo,"%f",&total );
 fprintf (archivo,"\n%f",total );

 z++;
 if(z==1000)
 {fprintf (archivo, "\nEl promedio del metodo 3 es: %f ",ttotal );
}
 }
 fprintf(archivo,"\n");
 system("clear");
 fclose(archivo);
 }


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


//Metodo 4 HEAPSORT//


 void Heapsort() { /*Ordena por metodo Heapsort*/
 FILE *archivo;
 int z=0;
 archivo = fopen("tiemposext.txt", "a");
 fprintf(archivo, "\nMetodo heapsort.-\n");
 while (z<1){

 long RandInt(long li, long ls) /*Comienza a generar los 1.000 elementos aleatorios*/
 {
 return rand( ) % (ls-li+1)+li;
 }

 float total,inicio, final,ttotal;
 inicio=clock();// INICIO TIEMPO
 int i,n=1000,a[n],j,temp=0;
 printf("\nArreglo sin ordenar:\n");
 for(i=0;i<n; i++)
 {
 a=RandInt(0, 10000);
 printf("Posicion %i Cifra:%i \n",i,a);
 } /*Termina de generar los 1.000 elementos aleatorios*/


 printf("\nArreglo ordenado:\n");
 /*Metodo Heapsort*/
 int I, s, f, ivalue,N ;
    for ( I = N - 1 ; I > 0 ; I-- )
    {
        ivalue = a ;
        a = a[0] ;
        f = 0 ;

        if ( I == 1 )
            s = -1 ;
        else
            s = 1 ;

        if ( I > 2 && a[2] > a[1] )
            s = 2 ;

        while ( s >= 0 && ivalue < a )
        {
            a[f] = a ;
            f = s ;
            s = 2 * f + 1 ;

            if ( s + 1 <= I - 1 && a < a[s + 1] )
                s++ ;
            if ( s > I - 1 )
                s = -1 ;
        }
        a[f] = ivalue ;
    } /*Fin Heapsort*/

 for(i=0;i<n; i++)
 {
 printf("Posicion %i Cifra :%i \n ",i,a);
 }
 final=clock(); // Fin Tiempo
 total=(final-inicio)/(double) CLOCKS_PER_SEC; // Tiempo total transcurrido
 printf("\n\nEl Tiempo es: %f\n",total );
 ttotal = ttotal + total/1000;
 fscanf (archivo,"%f",&total );
 fprintf (archivo,"\n%f",total );

 z++;
 if(z==1)
 {fprintf (archivo, "\nEl promedio del metodo 1 es: %f ",ttotal );
 }
 }
 fprintf(archivo,"\n");
 system("clear");
 fclose(archivo);
 }


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



 int main() {
 printf("\n\t1.-\tMetodo Burbuja\n");
 printf("\t2.-\tMetodo Shellsort\n");
 printf("\t3.-\tMetodo Quicksort\n");
 printf("\t4.-\tMetodo heapsort\n");
 printf("\t5.-\tSalida\n");
 printf("\n\tEscoja una opcion=> ");
 scanf("%d",&o);
 while (o!=5){



 switch (o)
{

case 1: _sort4 ();

break;

case 2: shellsort();

break;

case 3: quicksort ();

break;

case 4: heapsort ();
 
 break;

 }


 printf("\n\t1.-\tMetodo Burbuja\n");
 printf("\t2.-\tMetodo Shellsort\n");
 printf("\t3.-\tMetodo Quicksort\n");
 printf("\t4.-\tMetodo heapsort\n");
 printf("\t5.-\tSalir\n");
 printf("\tEscoja una opcion=> ");
 scanf("%d",&o);
 }


 return 0;
 }


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Tiempo de ejecución
« Respuesta #1 en: 27 Noviembre 2013, 23:35 pm »

Ponlo entre las etiquetas
Código:
 para que sea más legible.
¿¿Por qué pones la letra pequeña al final??


En línea

erest0r

Desconectado Desconectado

Mensajes: 147



Ver Perfil
Re: Tiempo de ejecución
« Respuesta #2 en: 28 Noviembre 2013, 04:27 am »

No se por qué, pero cuando veo que las letras se van haciendo mas pequeñas me causa mucha gracia  :D
En línea

Cruzar la calle junto a mucha gente cuando el semáforo sigue en rojo da seguridad y espíritu de equipo... o cruzamos todos o morimos juntos.
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Tiempo de ejecución
« Respuesta #3 en: 28 Noviembre 2013, 05:26 am »

Haa no no.. jajaja

Suerte!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
tiempo de ejecucion « 1 2 »
Programación C/C++
mapers 11 13,705 Último mensaje 26 Junio 2010, 15:37 pm
por cbug
tiempo de ejecucion!!!
Programación General
mapers 3 3,713 Último mensaje 28 Agosto 2010, 09:00 am
por Littlehorse
Tiempo de ejecucion
Programación C/C++
nolasco281 4 2,409 Último mensaje 5 Mayo 2014, 20:35 pm
por nolasco281
JLabel no moficado en tiempo de ejecucion
Java
Xedrox 3 2,092 Último mensaje 6 Mayo 2014, 21:42 pm
por Zoik
Tiempo de ejecucion: Ordenamienta Burbuja
Programación C/C++
dlopezo2 5 4,311 Último mensaje 22 Agosto 2014, 22:04 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines