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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / 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;
 }
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines