Added command to free memory
This commit is contained in:
parent
70c19782c1
commit
103cd2387f
|
@ -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 |
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue