diff --git a/busca.c b/busca.c
index 67ad4415d3db96c3a93b52fe4a63507311a102b6..54a2d3a8888ed8fd1719bc16f54b5a3c7c98c9a8 100644
--- a/busca.c
+++ b/busca.c
@@ -94,7 +94,10 @@ int mediana (int *vet, int esq, int dir)
 void Particao (int *vet, int esq, int dir, int *pos_pivo)
 {
     int i, j, aux, pivo, med = mediana(vet, esq, dir);
-    i = esq;
+    pivo = vet[med];
+    vet[med] = vet[esq];
+    vet[esq] = pivo;
+    i = esq+1;
     j = dir;
     while (i < j)
     {
diff --git a/busca.h b/busca.h
index f1035e8d18ddcf51349d468f81630c114f3495f4..e85b2a46b35cabeeeb34557aca62aa3ac2f3388c 100644
--- a/busca.h
+++ b/busca.h
@@ -3,6 +3,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+
 int pesqseq (int *, int , int );
 int pesqbin (int *, int , int );
 void menor (int *, int *, int );