Added command to free memory

This commit is contained in:
Abreu 2021-11-19 16:52:15 -03:00
parent 70c19782c1
commit 103cd2387f
No known key found for this signature in database
GPG Key ID: 64835466FF55F7E1
5 changed files with 43 additions and 22 deletions

View File

@ -316,7 +316,7 @@ Os seguintes gráfico e tabela relatam o resultado da experimentação:
<img title="" src="file:///home/user/Public/USP/Sistemas de Informação/2º semestre/Introdução à Análise de Algoritmos/EP 1/Imagens/53ccaa02d734f310cfe4fca904e3cfd3d1a5a053.jpg" alt="" width="681" data-align="center">
| Tamanho da entrada | Tempo de execução — *mergeSelect* | Tempo de execução — *quickSelect* |
| ------------------ | ---------------------------------:| ---------------------------------:|
|:------------------ | ---------------------------------:| ---------------------------------:|
| 1 | 4,39 | 2,51 |
| 2 | 8,35 | 4,24 |
| 4 | 14,27 | 6,47 |

View File

@ -22,5 +22,6 @@ int main () {
mergeSort(A, size);
printf("O %dº elemento de menor valor: %d\n", index, A[index - 1]);
free(A);
return 0;
}

View File

@ -1,29 +1,37 @@
#include "./merge_select.h"
int main () {
unsigned int i = 0, size = 1;
array A = malloc(size * sizeof(int));
int d;
int * readArray (int *size) {
int d, i = 0;
char c;
printf("Este programa admite uma lista de valores inteiros x tais que %d ≤ x ≤ %d e afere o valor do i-ésimo menor valor.\nDigite uma série de valores inteiros separadas entre si por espaço e pressione ENTER:\n", INT_MIN, INT_MAX);
array A;
*size = 1;
A = malloc(sizeof(int));
do {
if (!scanf(" %d", &d))
continue;
if (i == size - 1) {
size *= 2;
A = realloc(A, size * sizeof(int));
if (i == *size - 1) {
*size *= 2;
A = realloc(A, *size * sizeof(int));
}
A[i++] = d;
} while ((c = getchar()) != EOF && c != '\n');
size = i;
*size = i;
return A;
}
int main () {
int i, d, size;
array A;
printf("Este programa admite uma lista de valores inteiros x tais que %d ≤ x ≤ %d e afere o valor do i-ésimo menor valor.\nDigite uma série de valores inteiros separadas entre si por espaço e pressione ENTER:\n", INT_MIN, INT_MAX);
A = readArray(&size);
printf("Digite um índice i tal que 1 ≤ i ≤ %d: ", size);
if (!scanf(" %d", &d) || d <= 0 || d > size) {
printf("Valor inválido detectado.\n");
return 1;
}
mergeSort(A, size);
printf("Arranjo ordenado:\n");
@ -32,5 +40,6 @@ int main () {
printf("\n");
printf("\nO %dº elemento de menor valor: %d\n", d, A[d - 1]);
free(A);
return 0;
}

View File

@ -20,5 +20,6 @@ int main () {
return 1;
}
printf("O %dº elemento de menor valor: %d\n", index, *(quickSelect(A, size, index - 1)));
free(A);
return 0;
}

View File

@ -1,22 +1,31 @@
#include "./quick_select.h"
int main () {
unsigned int i = 0, size = 1;
array A = malloc(size * sizeof(int));
int d, *result;
int * readArray (int *size) {
int d, i = 0;
char c;
printf("Este programa admite uma lista de valores inteiros x tais que %d ≤ x ≤ %d e afere o valor do i-ésimo menor valor.\nDigite uma série de valores inteiros separadas entre si por espaço e pressione ENTER:\n", INT_MIN, INT_MAX);
array A;
*size = 1;
A = malloc(sizeof(int));
do {
if (!scanf(" %d", &d))
continue;
if (i == size - 1) {
size *= 2;
A = realloc(A, size * sizeof(int));
if (i == *size - 1) {
*size *= 2;
A = realloc(A, *size * sizeof(int));
}
A[i++] = d;
} while ((c = getchar()) != EOF && c != '\n');
size = i;
*size = i;
return A;
}
int main () {
int i, size, d, *result;
array A;
printf("Este programa admite uma lista de valores inteiros x tais que %d ≤ x ≤ %d e afere o valor do i-ésimo menor valor.\nDigite uma série de valores inteiros separadas entre si por espaço e pressione ENTER:\n", INT_MIN, INT_MAX);
A = readArray(&size);
printf("Digite um índice i tal que 1 ≤ i ≤ %d: ", size);
if (!scanf(" %d", &d) || d <= 0 || d > size) {
@ -32,5 +41,6 @@ int main () {
printf("\n");
printf("\nO %dº elemento de menor valor: %d\n", d, *result);
free(A);
return 0;
}