Repositório para resolução de questões relacionadas à algoritmos de ordenação.
Matrícula | Nome |
---|---|
19/0010495 | Arthur Alves de Matos |
O objetivo do projeto é implementar e testar diferentes algoritmos de ordenação aplicados à questão 148. Sort List do LeetCode. O propósito é verificar se cada implementação é capaz de passar nos casos de teste da plataforma e apresentar tempos de execução razoáveis, analisando o desempenho de soluções.
Linguagem: C
Para a utilização do projeto, deve-se ter acesso ao compilador de linguagem C gcc.
Cada questão foi separada em uma pasta diferente e para executar os códigos de cada uma das questões é necessário a execução dos 3 seguintes comandos adaptados ao nome do arquivo de cada questão. Ex:
cd Questoes/{nome-da-pasta}/
gcc -o resposta resposta.c
./resposta < resposta.txt
O arquivo txt de solução, contem uma lista de elementos inteiros separados por espaços
, o arquivo pode ser editado livremente para testes, desde que matida a estrutura.
Nesse projeto, foi explorada a questão do leetcode de nível médio 148. Sort List. A proposta é solucionar a questão com multiplos métodos de ordenação.
A questão abordada no projeto foi:
Sendo utilizados como métodos de ordenação:
- Merge Sort Iterativo
- Merge Sort Recursivo
- Quick Sort
- Counting Sort
- Shell Sort
- Selection Sort
- Insertion Sort
A proposta de utilizar múltiplos algoritmos de ordenação foi verificar se suas implementações seriam capazes de passar nos testes do LeetCode e se apresentariam tempos de execução razoáveis.
Durante os testes, alguns algoritmos se comportaram conforme o esperado — confirmando previsões de aprovação ou reprovação, enquanto outros acabaram surpreendendo ou frustrando as expectativas.
- Merge Sort (Iterativo): Aprovado, com bom tempo de execução
- Merge Sort (Recursivo): Aprovado, com excelente tempo de execução
- Selection Sort: Time Limit Exceeded (TLE) — 26/30 casos passados
- Insertion Sort: Time Limit Exceeded (TLE) — 29/30 casos passados
- Quick Sort: Time Limit Exceeded (TLE) — 28/30 casos passados
- Counting Sort: Aprovado, com o melhor tempo de execução entre os testes
- Shell Sort: Aprovado, com bom tempo de execução
Apresentação em vídeo de aplicação dos testes.