Commit d3ba55a3 authored by Felipe's avatar Felipe

Pilha implementada com alocação dinamica

parent 72415816
......@@ -102,3 +102,73 @@
[1 1 2 2 2 2 3 4 5 8 9 11 14 15 15]
- Programa encerrado.
-----------------------------------------------------------------------
- Programa iniciado. - Wed Dec 31 21:00:01 1969
- Gerando nova configuração de vetores.
Novo tamanho máximo do vetor: 100
Novo tamanho máximo do vetor: 100
Novo vetor aleatório gerado.
- Ordenando vetor com o algoritmo QuickSort Iterativo.
- Imprimindo vetor desordenado:
[31 86 97 45 56 34 93 61 100 49 96 14 33 60 7 34 38 33 63 18 61 94 51 15 85 61 61 62 75 47 31 57 33 80 1 88 65 94 100 65 94 95 30 26 54 37 11 91 21 73 60 81 18 10 47 2 23 59 16 49 58 98 5 42 77 5 81 42 50 80 58 43 75 87 20 80 75 30 71 47 54 30 79 72 92 77 25 14 36 92 62 45 90 18 86 66 74 66 59 24]
- Imprimindo vetor ordenado:
[1 2 5 5 7 10 11 14 14 15 16 18 18 18 20 21 23 24 25 26 30 30 30 31 31 33 33 33 34 34 36 37 38 42 42 43 45 45 47 47 47 49 49 50 51 54 54 56 57 58 58 59 59 60 60 61 61 61 61 62 62 63 65 65 66 66 71 72 73 74 75 75 75 77 77 79 80 80 80 81 81 85 86 86 87 88 90 91 92 92 93 94 94 94 95 96 97 98 100 100]
- Gerando nova configuração de vetores.
Novo tamanho máximo do vetor: 10
Novo tamanho máximo do vetor: 10
Novo vetor aleatório gerado.
- Ordenando vetor com o algoritmo SelectSort.
- Inicio do teste de tempo de execução com 10000 vetores de 10 elementos.
Tempo de execução total para SelectSort: 0.059497
Tempo de execução total para BubbleSort: 0.055805
Tempo de execução total para QuickSort Recursivo: 0.056632
Tempo de execução total para QuickSort Iterativo: 9.219557
- Programa encerrado.
-----------------------------------------------------------------------
- Programa iniciado. - Wed Dec 31 21:00:01 1969
- Gerando nova configuração de vetores.
Novo tamanho máximo do vetor: 10
Novo tamanho máximo do vetor: 10
Novo vetor aleatório gerado.
- Ordenando vetor com o algoritmo QuickSort Iterativo.
- Inicio do teste de tempo de execução com 10000 vetores de 10 elementos.
Tempo de execução total para SelectSort: 0.053751
Tempo de execução total para BubbleSort: 0.050929
Tempo de execução total para QuickSort Recursivo: 0.076263
Tempo de execução total para QuickSort Iterativo: 0.090171
- Programa encerrado.
-----------------------------------------------------------------------
- Programa iniciado. - Wed Dec 31 21:00:01 1969
- Gerando nova configuração de vetores.
Novo tamanho máximo do vetor: 1000
Novo tamanho máximo do vetor: 1000
Novo vetor aleatório gerado.
- Ordenando vetor com o algoritmo SelectSort.
- Inicio do teste de tempo de execução com 10000 vetores de 1000 elementos.
Tempo de execução total para SelectSort: 39.037185
Tempo de execução total para BubbleSort: 96.179609
Tempo de execução total para QuickSort Recursivo: 3.236947
Tempo de execução total para QuickSort Iterativo: 4.242587
- Programa encerrado.
......@@ -175,7 +175,7 @@ void TempoExecucao(int vetor[], int tam, int numMax)
}
end = clock();
time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
printf("\tTempo do SelectSort: %lf\n", time_spent);
printf("\tTempo do SelectSort: %lf s\n", time_spent);
ToLogFile("\tTempo de execução total para SelectSort: ");
sprintf(buffer, "%f", time_spent);
......@@ -190,7 +190,7 @@ void TempoExecucao(int vetor[], int tam, int numMax)
}
end = clock();
time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
printf("\tTempo do BubbleSort: %lf\n", time_spent);
printf("\tTempo do BubbleSort: %lf s\n", time_spent);
ToLogFile("\tTempo de execução total para BubbleSort: ");
sprintf(buffer, "%f", time_spent);
......@@ -205,7 +205,7 @@ void TempoExecucao(int vetor[], int tam, int numMax)
}
end = clock();
time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
printf("\tTempo do QuickSort Recursivo: %lf\n", time_spent);
printf("\tTempo do QuickSort Recursivo: %lf s\n", time_spent);
ToLogFile("\tTempo de execução total para QuickSort Recursivo: ");
sprintf(buffer, "%f", time_spent);
......@@ -222,7 +222,7 @@ void TempoExecucao(int vetor[], int tam, int numMax)
}
end = clock();
time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
printf("\tTempo do QuickSort Iterativo: %lf\n", time_spent);
printf("\tTempo do QuickSort Iterativo: %lf s\n", time_spent);
ToLogFile("\tTempo de execução total para QuickSort Iterativo: ");
sprintf(buffer, "%f", time_spent);
......
#ifndef _PILHA_H
#define _PILHA_H
#include<stdio.h>
#include<stdlib.h>
#define MAXPILHA 16862
......@@ -9,28 +10,39 @@ typedef struct{
int cdir;
} tipoCoordenada;
typedef struct tipoElemento{
tipoCoordenada coordenada;
struct tipoElemento *prox;
}tipoElemento;
typedef struct{
tipoCoordenada coordenada[MAXPILHA];
int topo;
tipoElemento *topo;
int tamanho;
}tipoPilha;
void InicPilha(tipoPilha *pilha)
{
pilha->topo = 0;
pilha->topo = (struct tipoElemento*)malloc(sizeof(struct tipoElemento));
pilha->topo->prox = NULL;
pilha->tamanho = 0;
}
int VaziaPilha(tipoPilha pilha)
{
return (!pilha.topo);
return (pilha.tamanho == 0);
}
void Push(tipoPilha *pilha, int esquerda, int direita)
{
if(esquerda < direita)
{
pilha->topo++;
pilha->coordenada[pilha->topo].cesq = esquerda;
pilha->coordenada[pilha->topo].cdir = direita;
tipoElemento *aux;
aux = (struct tipoElemento*)malloc(sizeof(struct tipoElemento));
pilha->topo->coordenada.cesq = esquerda;
pilha->topo->coordenada.cdir = direita;
aux->prox = pilha->topo;
pilha->topo = aux;
pilha->tamanho++;
}
}
......@@ -39,9 +51,13 @@ tipoCoordenada Pop(tipoPilha *pilha)
if(!VaziaPilha(*pilha))
{
tipoCoordenada c;
c.cesq = pilha->coordenada[pilha->topo].cesq;
c.cdir = pilha->coordenada[pilha->topo].cdir;
pilha->topo--;
tipoElemento *aux;
aux = pilha->topo;
pilha->topo = pilha->topo->prox;
free(aux);
pilha->tamanho--;
c.cesq = pilha->topo->coordenada.cesq;
c.cdir = pilha->topo->coordenada.cdir;
return c;
}
}
......
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