Prévia do material em texto
<p>Universidade Estadual de Santa Cruz – UESC</p><p>Relatório de Implementações de Algoritmos de Ordenação</p><p>Usando C e Java</p><p>Ilhéus – BA</p><p>2023</p><p>Código Fonte</p><p>● Implementação em C</p><p>O código escrito em C consiste em três arquivos: `main.c`, `ordenacao.c` e</p><p>`ordenacao.h`. Para compilar e executar o programa no terminal, precisa usar o</p><p>comando `gcc -o programamain.c ordenacao.c` seguido por `./programa`. Isso</p><p>compila os arquivos fonte e gerará um executável chamado `programa`, que pode ser</p><p>executado. Durante a execução, o programa cria um arquivo de saída chamado</p><p>`programa.txt` que contém os resultados do programa. Além disso, um arquivo</p><p>chamado `tempos.txt` também é criado, onde são registrados os tempos de</p><p>processamento do programa. Esses arquivos fornecem informações sobre a execução e</p><p>o desempenho do programa. Para essa implementação foi usada a IDE visual studio.</p><p>Main.c</p><p>#include</p><p>#include</p><p>#include</p><p>#define NUM_VETOR 1024</p><p>#define TAM_VETOR 100</p><p>void insertionSort(int arr[], int n) {</p><p>int i, k, j;</p><p>for (i = 1; i = 0 && arr[j] > k) {</p><p>arr[j + 1] = arr[j];</p><p>j = j - 1;</p><p>}</p><p>arr[j + 1] = k;</p><p>}</p><p>}</p><p>void VAleatorio(int vetores[][TAM_VETOR], int numVetores) {</p><p>for (int i = 0; i = 0 && vetor[j] > k) {</p><p>vetor[j + 1] = vetor[j];</p><p>j = j - 1;</p><p>}</p><p>vetor[j + 1] = k;</p><p>}</p><p>}</p><p>Ordenacao.h</p><p>#ifndef ORDENACAO_H</p><p>#define ORDENACAO_H</p><p>void InsertionSort(int vetor[], int tam);</p><p>#endif</p><p>Gráfico de tempo de processamento na linguagem C.</p><p>O gráfico foi implementado em python usando a biblioteca matplotlib e rodado no</p><p>ambiente google colab.</p><p>● Implementação em Java</p><p>O programa em java foi implementado e rodado no ambiente de desenvolvimento</p><p>online.</p><p>Main. java</p><p>import java.util.Random;</p><p>import java.util.List;</p><p>import java.util.ArrayList;</p><p>public class Main {</p><p>public static void main(String[] args) {</p><p>int numRepeticoes = 1024;</p><p>int numVetores = 1024;</p><p>int tamVetor = 100;</p><p>List tempo_processo = new ArrayList();</p><p>for (int r = 0; r = 0 && arr[j] > k) {</p><p>arr[j + 1] = arr[j];</p><p>j = j - 1;</p><p>}</p><p>arr[j + 1] = k;</p><p>}</p><p>}</p><p>}</p><p>- Gráfico de tempo de processamento na linguagem Java.</p><p>O gráfico foi implementado em python usando a biblioteca matplotlib e rodado no</p><p>ambiente google colab.</p><p>Comparação dos resultados da ordenação imperativa com a ordenação Orientada a</p><p>Objetos.</p><p>Conclusão</p><p>Com base nos resultados obtidos da comparação dos tempos de execução entre as</p><p>implementações em Java e C dos algoritmos de ordenação por inserção, podemos</p><p>concluir que a linguagem Java foi mais rápida que a linguagem C em nossos</p><p>experimentos.</p><p>Esta conclusão se dá a partir dos dados coletados, onde foram observados os tempos</p><p>de execução. Isso pode ser atribuído a diversas razões, como otimizações do</p><p>compilador Java, eficiência da máquina virtual Java (JVM) ou diferenças nas</p><p>implementações específicas dos algoritmos em cada linguagem.</p>