Advertisement
Graf_Spee

Untitled

Sep 7th, 2016
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.06 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <time.h>
  3.  
  4. void InsertionSort(int vetor[], int elementos)
  5. {
  6.     int i, j, atual;
  7.  
  8.     for (i = 1; i < elementos; i++)
  9.     {
  10.         atual = vetor[i];
  11.         j = i - 1;
  12.  
  13.         while ((j >= 0) && (atual < vetor[j]))
  14.         {
  15.             vetor[j + 1] = vetor[j];
  16.             j = j - 1;
  17.         }
  18.    
  19.         vetor[j + 1] = atual;
  20.     }
  21. }
  22.  
  23. long timediff(clock_t t1, clock_t t2)
  24. {
  25.     return ((double)t2 - t1) / CLOCKS_PER_SEC;
  26. }
  27.  
  28. struct Processo
  29. {
  30.     int id;
  31.     int elementos;
  32.     double tempoExecucao;
  33.     int vetor[1000];
  34. };
  35.  
  36. int main()
  37. {
  38.     clock_t t1, t2;
  39.     int execucoes, qtd, idAtual = 1;
  40.  
  41.     printf("Insira a quantidade de execucoes do programa: ");
  42.     scanf("%d", &execucoes);
  43.    
  44.     struct Processo Processos[execucoes];
  45.    
  46.     for(idAtual; idAtual <= execucoes; idAtual++)
  47.     {
  48.         Processos[idAtual - 1].id = idAtual;
  49.        
  50.         do
  51.         {
  52.             printf("\nInsira a quantidade de inteiros que o vetor ira conter (maximo: 999): ");
  53.             scanf("%d", &qtd);
  54.         } while(qtd > 999);
  55.        
  56.         Processos[idAtual - 1].elementos = qtd;
  57.        
  58.         printf("Insira %d inteiros:\n", qtd);
  59.        
  60.         for(int i = 0; i < qtd; i++)
  61.         {
  62.             printf("%d. ", i + 1);
  63.             scanf("%d", &Processos[idAtual - 1].vetor[i]);        
  64.         }
  65.        
  66.         t1 = clock();
  67.         InsertionSort(Processos[idAtual - 1].vetor, qtd);
  68.         t2 = clock();
  69.        
  70.         Processos[idAtual - 1].tempoExecucao = timediff(t1, t2);
  71.        
  72.         printf("Vetor ordenado: ");
  73.        
  74.         for(int i = 0; i < qtd; i++)
  75.         {
  76.             printf("%d ", Processos[idAtual - 1].vetor[i]);
  77.         }
  78.        
  79.         printf("\nTempo usado:  %.5fms\n", Processos[idAtual - 1].tempoExecucao);
  80.     }  
  81.    
  82.     for(idAtual = 0; idAtual < execucoes; idAtual++)
  83.     {
  84.         printf("Processo id %d: %d elementos - %.5fms\n", Processos[idAtual].id, Processos[idAtual].elementos, Processos[idAtual].tempoExecucao);
  85.     }
  86.    
  87.     return 0;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement