Commit 3ff2522d authored by Leonardo Krambeck's avatar Leonardo Krambeck

implementa quicksort com mediana de 3 hibrido

parent c0f36f0e
......@@ -18,7 +18,7 @@ int main () {
/* Mude aqui o numero de iterações, tamanho maximo e nome do algoritmo */
int MAX_IT = 100;
int TAM_MAX = 1000000;
char *algoritmo = "mergesort_melhorado (R)";
char *algoritmo = "mergesort_melhorado_h (O)";
for ( tam=10; tam <= TAM_MAX; tam*=10 )
{
......@@ -26,7 +26,7 @@ int main () {
v = (int*) malloc (tam * sizeof(int));
/* Mude aqui o tipo de entrada */
gera_vetor_randomico (v,tam);
gera_vetor_em_ordem (v,tam);
soma_tempo = 0;
for (i=0; i<MAX_IT; i++)
......@@ -38,7 +38,7 @@ int main () {
soma_tempo += (fim-ini);
embaralha_vetor (v,tam);
/*embaralha_vetor (v,tam);*/
}
printf("Algoritmo: %25s | Iterações: %7d | Tamanho: %10d | Tempo: %15f milisegundos.\n", algoritmo, MAX_IT, tam, soma_tempo/MAX_IT);
......
......@@ -4,7 +4,7 @@
#include "lib_ordena.h"
#define LIMITE_INSERTION 50
#define LIMITE_INSERTION 70
void imprime_vetor (int v[], int tam) {
int i;
......@@ -237,7 +237,10 @@ int mediana3_vetor (int v[], int ini, int fim)
void quicksort_mediana3 (int v[], int ini, int fim)
{
if (ini < fim)
if (ini + LIMITE_INSERTION > fim)
insertionsort (v, ini, fim);
else
{
int pivo = mediana3 (v, ini, fim);
int pivo_i = particiona_mediana3 (v, ini, fim, pivo);
......
......@@ -38,3 +38,17 @@ Algoritmo: mergesort_melhorado (R) | Iterações: 100 | Tamanho: 1000
Algoritmo: mergesort_melhorado (R) | Iterações: 100 | Tamanho: 100000 | Tempo: 8.090613 milisegundos.
Algoritmo: mergesort_melhorado (R) | Iterações: 100 | Tamanho: 1000000 | Tempo: 114.690315 milisegundos.
Algoritmo: quicksort_mediana3_hib (R) | Iterações: 100 | Tamanho: 10 | Tempo: 0.000984 milisegundos.
Algoritmo: quicksort_mediana3_hib (R) | Iterações: 100 | Tamanho: 100 | Tempo: 0.016091 milisegundos.
Algoritmo: quicksort_mediana3_hib (R) | Iterações: 100 | Tamanho: 1000 | Tempo: 0.091113 milisegundos.
Algoritmo: quicksort_mediana3_hib (R) | Iterações: 100 | Tamanho: 10000 | Tempo: 0.766570 milisegundos.
Algoritmo: quicksort_mediana3_hib (R) | Iterações: 100 | Tamanho: 100000 | Tempo: 10.327100 milisegundos.
Algoritmo: quicksort_mediana3_hib (R) | Iterações: 100 | Tamanho: 1000000 | Tempo: 131.479883 milisegundos.
Algoritmo: mergesort_melhorado_h (R) | Iterações: 100 | Tamanho: 10 | Tempo: 0.001187 milisegundos.
Algoritmo: mergesort_melhorado_h (R) | Iterações: 100 | Tamanho: 100 | Tempo: 0.011096 milisegundos.
Algoritmo: mergesort_melhorado_h (R) | Iterações: 100 | Tamanho: 1000 | Tempo: 0.067683 milisegundos.
Algoritmo: mergesort_melhorado_h (R) | Iterações: 100 | Tamanho: 10000 | Tempo: 0.616626 milisegundos.
Algoritmo: mergesort_melhorado_h (R) | Iterações: 100 | Tamanho: 100000 | Tempo: 8.030952 milisegundos.
Algoritmo: mergesort_melhorado_h (R) | Iterações: 100 | Tamanho: 1000000 | Tempo: 102.249565 milisegundos.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment