Skip to content

Anotações e prática de códigos analisados durante a faculdade, na disciplna de mesmo nome do repositório.

Notifications You must be signed in to change notification settings

nascimento-felipe/analiseAlgoritmos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Análise de Algoritmos

O que é esse repositório?

Esse repositório foi criado para armazenar algoritmos que são estudados durante minha disciplina de Análise de Algoritmos. A ideia é também misturar alguns algoritmos com estruturas de dados, que inclusive estão em um outro repositório aqui no meu perfil.

Essa segunda parte vai demorar um pouco, pois vou poder juntar os dois de forma eficiente somente no primeiro semestre de 2023, onde estudarei esses assuntos de forma mais aprofundada.

Os Algoritmos que estudei têm propósitos variados, indo de buscas em um array de números inteiros até procurar o valor X da sequência de Fibonacci; porém o conteúdo mais estudado durante toda a disciplina foram Algoritmos de Ordenação - só com números inteiros, por enquanto.

Sinta-se livre para estudar esses códigos :)

Principais linguagens

Meu foco inicial é nas linguagens C, C++, Python e Java. Conforme meus trabalhos e provas forem terminando e o semestre chegando ao fim, terei mais tempo para fazer os código também em outras linguagens.

OBS.: Na linguagem c++, não utilizei o "using namespace std" para ficar mais fácil para pessoas que não sabem c++ (eu agora, por exemplo) saberem quais funções são standard e saber como usar melhor esse namespace.

Todos os códigos em C e C++ tem comentários detalhados do que está sendo feito. Os demais terão comentários conforme eu tiver tempo, como já dito antes.

Separação de pastas

Os algoritmos são separados por tipo, então caso queira procurar por um algoritmo de Merge Sort em Java, basta ir na pasta de "Merge Sort" e procurar pelo arquivo com a extensão ".java".

Dentro das pastas existe uma outra chamada "executaveis". Nela estão todos os arquivos compilados de C e C++. Os demais, oriundos de linguagens interpretadas, podem ser encontrados dentro da pasta com o nome do algoritmo.

Pastas

Dê um passeio pelas pastas! :D

Observações gerais

Não recomendo testar o fibonacci recursivo (que não é o de programação dinâmica), pois ele tem complexidade 2^n, que é bem ruim - pense em procurar o número 100 da série: seria 2^100 ou 1,2676506×(10^30). Ao invés disso, utilize o iterativo que tem O(n), ou seja, aumenta em mesma medida que n aumenta - se procurássemos pelo mesmo número 100 da série, teríamos uma complexidade de 100.

Porém, fique a vontade para testar e ver que realmente o retorno do programa é bem demorado, como era de se esperar.

About

Anotações e prática de códigos analisados durante a faculdade, na disciplna de mesmo nome do repositório.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published