diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..215750d1dee1a720d4835fd063f411e5c52be928
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,10 @@
+all: Quadra.exe
+
+Quadra.exe: libbusca.a
+	gcc Quadra.c -I./ -L./ -lbusca -o Quadra.exe
+
+libbusca.a: busca.o
+	ar -cru libbusca.a busca.o
+
+busca.o:
+	gcc -c busca.c -o busca.o
diff --git a/Quadra.c b/Quadra.c
index f6fdb763fa6a384e799211f8a5d96ff25aa5fc10..010ebc99efee390956335907b6f33934a3d11aae 100644
--- a/Quadra.c
+++ b/Quadra.c
@@ -54,6 +54,41 @@ void jogar (int *vet, int *vet_ord, int N)
         printf ("Nenhum valor encontrado!\n");
 }
 
+void jornada(int Tam, int max)
+{
+    int i, *mat[10000], *mat_ord[10000], time[4]; //cada um dos 4 times conta o tempo de um dos algoritmos de ordenação
+    for (i = 0; i < 10000; i++)
+    {
+        vetSort(mat[i], Tam, max);
+        vetcpy(mat[i], mat_ord[i], Tam);
+    }
+    // inicia time[0]
+    for (i = 0; i < 10000; i++)
+        SelectSort(mat_ord[i], Tam);
+    // time[0] = tempoMaq - time[0]
+
+    for (i = 0; i < 10000; i++)
+        vetcpy(mat[i], mat_ord[i], Tam);
+    // inicia time [1]
+    for (i = 0; i < 10000; i++)
+        BubbleSort(mat_ord[i], Tam);
+    // time[1] = tempoMaq - time[1]
+
+    for (i = 0; i < 10000; i++)
+        vetcpy(mat[i], mat_ord[i], Tam);
+    // inicia time [2]
+    for (i = 0; i < 10000; i++)
+        QuickSort_rec(mat_ord[i], 1, Tam);
+    // time[2] = tempoMaq - time[2]
+
+    for (i = 0; i < 10000; i++)
+        vetcpy(mat[i], mat_ord[i], Tam);
+    // inicia time [3]
+    for (i = 0; i < 10000; i++)
+        QuickSort_it(mat_ord[i], Tam);
+    // time[3] = tempoMaq - time[3]
+}
+
 int main (void)
 {
     int Tam, max, *vet, *vet_ord;
@@ -84,7 +119,10 @@ int main (void)
             jogar (vet, vet_ord, Tam);
             break;
         case 5:
-            // jornada! Desenvolver!
+            jornada(Tam, max);
+            break;
         }
+        printf ("\nNova Entrada: ");
+        scanf ("%d", &menu);
     }
 }