Algorithms
- ⌘ Matematica para programadores (opens in a new tab)
- ⌘ Aysmptotic Notations (opens in a new tab)
- ⌘ Machine Learning (opens in a new tab)
Data Structures
DS heterogêneas Vs homogêneas
Estruturas de dados heterogêneas armazenam o mesmo tipo de dados, e estruturas homogêneas armazenam tipos de dados diferentes.
Big O
- Big-O Cheat Sheet (opens in a new tab)
- Big-O Cheat Sheet - Know Thy Complexities! (opens in a new tab)
- Algorithms & Data Structures (opens in a new tab)
Sorting
- Algorithms & Data Structures (opens in a new tab)
- Algorithm Visualizer (opens in a new tab)
- Sorting Animations (opens in a new tab)
- Sorting Visualizer (opens in a new tab)
- Toptal sorting animations (opens in a new tab)
- DSAnim (opens in a new tab)
- Programiz (opens in a new tab)
- Visualgo.net - sorting (opens in a new tab)
- Visualgo.net - hashTable (opens in a new tab)
- USFCA - Sorting Algorithms (opens in a new tab)
- Codesdope - bubleSort (opens in a new tab)
- Codesdope - heapsort (opens in a new tab)
- Codesdope - mergeSort (opens in a new tab)
- Codesdope - quickSort (opens in a new tab)
- Big-O - wisc (opens in a new tab)
- HashTable - wisc (opens in a new tab)
- HeapSort - wisc (opens in a new tab)
- General Sorting - wisc (opens in a new tab)
Free algorithms books
- Data Structures and Algorithms (opens in a new tab)
- Data Structures and Algorithm Analysis (opens in a new tab)
- Algorithms, 4th Edition (opens in a new tab)
Books
Articles & Study
- Teach Yourself Computer Science - CS education (opens in a new tab)
- A Guide to Parsing: Algorithms and Terminology (opens in a new tab)
- Longest Common Subsequence - Git Diff (opens in a new tab)
- 8 time complexities that every programmer should know (opens in a new tab)
- Huffman Coding (opens in a new tab)
- Data Compression with Huffman’s Algorithm (opens in a new tab)
- Dijkstra's Algorithm (opens in a new tab)
- 8 Estruturas de dados, que todo o programador precisa conhecer! (opens in a new tab)
- Teoria dos Dados (opens in a new tab)
- Grafos e modelo de blocos aninhados para matrizes de correlação: clusterização do mercado de ações (opens in a new tab)
Binary Fundamentals
Dicas
-
Árvores binárias são múltiplas listas ligadas.
-
Cada nó de uma lista ligada é uma lista ligada.
-
Linked list são recursivas pois podem ter casos bases, diferente da Double linked list.
-
Árvores binárias não tem ciclos.
-
Estruturas cíclicas são difíceis de tratar com recursão porque não tem como garantir que visitou todos os nodes. Para fazer isso, é necessário pintar com uma cor cada nó visitado para estipular o caso base.
Propriedades da Multiplicação
- Commutative: a * b = b * a
- Elemento Neutro: 12 * 1 = 12 | 5 * 1 = 5
- Distributive: a * (b + c) = a * b + a * c
- Elemento Nulo: 12 * 0 = 0 | 5 * 0 = 0
- Associative: (a * b) * c = a * (b * c)