Este repositório é destinado a serie da nossa comunidade Craft & Code Club sobre Algorithms & Data Structures - From Zero to Hero.
Vamos usar este repositorio para compartilhar o roadmap, códigos, slides e materiais de apoio aos nossos encontros.
Todas as contribuições são bem-vindas.
- Se tens alguma sugestão ou correção, por favor, abra uma issue deste repositório.
- Se encontraste algum erro ou algo que possa ser melhorado, por favor, abra um pull request.
flowchart
BigO[Big O Notation] --> Arrays-Topic
subgraph Arrays-Topic[Arrays]
direction TB
Arrays --> BinarySearchBasic["Binary Search (Basic)"]
end
BinarySearchBasic --> Strings
Strings --> BubbleSort
subgraph BasicSorting-Topic["Sorting (Basic)"]
direction TB
BubbleSort(Bubble Sort)
--> InsertionSort[Insertion Sort]
--> SelectionSort[Selection Sort]
end
BasicSorting-Topic --> LinkedList-Topic
subgraph LinkedList-Topic[Linked List]
direction TB
DoublyLinkedList[Doubly Linked List]
Sentinels
FastSlow[Fast and Slow]
DummyNodePointer["Dummy node (pointer)"]
IdentifyCycles[Identify Cycles]
FloydCycle[Floyd Cycle]
end
LinkedList-Topic
--> BinarySearchDeep["Binary Search (Deep)"]
--> TwoPointers[Two Pointers]
--> SlidingWindow[Sliding Window]
--> PrefixSum[Prefix Sum]
--> HashMapSet-Topic
subgraph HashMapSet-Topic[Hash Map / Set]
HashMapSet-ColisionResolution["Colision resolution (Buckets / Open Adrress)"]
CounterFrequency[Counter / Frequency]
end
HashMapSet-Topic
--> Stack
--> Recursion-Topic
subgraph Recursion-Topic[Recursion]
direction TB
FunctionalProgramming[Functional Programming]
ReverseLinkedList[Reverse LinkedList]
Fibonnacci
PowerOf[Power of 2/3/4]
end
Recursion-Topic
--> Queue
--> Trees
subgraph Trees-Topic[Trees]
direction TB
Trees
--> BinaryTree[Binary Tree]
--> DFS-Topic
--> BFS-Topic
--> KAry[K-ary]
--> BinarySearchTree[Binary Search Tree]
subgraph DFS-Topic[DFS]
direction LR
DFS --> DFS-Recursion[Recursion]
DFS --> DFS-Stack[Stack]
DFS --> DFS-PreOrder[Pre Order]
DFS --> DFS-InOrder[In Order]
DFS --> DFS-PostOrder[Post Order]
DFS --> DFS-Boundary[Boundary]
DFS --> DFS-Diagonal[Diagonal]
end
subgraph BFS-Topic[BFS]
direction TB
BFS --> BFS-Queue[Queue]
end
end
BinarySearchTree
--> BinaryHeap[Binary Heap]
--> HeapSort
subgraph MediumSorting-Topic["Sorting (Medium)"]
direction TB
HeapSort(Heap Sort)
--> MergeSort[Merge Sort]
--> ShellSort[Shell Sort]
--> QuickSort[Quick Sort]
end
QuickSort --> Graphs
subgraph Graphs-Topic[Graphs]
direction LR
Graphs
--> Graphs-DFSBFS[DFS / BFS]
--> Dijkstra
subgraph SSSP-Topic[SSSP]
Dijkstra
--> Bellman-Ford
--> A-Star
end
A-Star --> FloydWarshall
subgraph APSP-Topic[APSP]
FloydWarshall[Floyd Warshall]
end
end
FloydWarshall
--> TopologicalSorting[Topological Sorting]
--> Backtracking
--> Top-Down
--> Memoization
--> Botton-Up
--> Tabulation
--> DynamicPrograming
subgraph DynamicPrograming-Topic[Dynamic Programing]
direction TB
DynamicPrograming[Dynamic Programing]
--> DynamicPrograming-1D[1D]
--> DynamicPrograming-Multidimensional[Multidimensional]
end
DynamicPrograming-Multidimensional --> BitManipulation-Base-2-8-16
subgraph BitManipulation-Topic[Bit Manipulation]
direction TB
BitManipulation-Base-2-8-16[Base 2 / Base 8 / Base 16]
--> BitManipulation-Complement[Complement]
--> BitManipulation-Shift[Bit Shift Left and Right]
--> BitManipulation-Operations[And / Or / Xor]
end
BitManipulation-Operations --> CountingSort
subgraph AdvancedSorting-Topic["Sorting (Advanced)"]
direction TB
CountingSort[Counting Sort]
--> RadixSort[Radix Sort]
--> BucketSort[Bucket Sort]
end
BucketSort
--> Trie
--> Intervals
--> Greedy
--> AdvancedGraphs["Graphs (Advanced)"]
--> MathGeometry["Math & Geometry"]
-
Big O Notation - Análise Assintótica de Algoritmos
-
Arrays
-
Strings
-
Algoritmos de Ordenação Básicos
-
Linked Lists
- Youtube - Encontro
- Topicos:
- Singly Linked List
- Doubly Linked List
- Sentinels
- Dummy node (pointer)
- Rotate Linked List
- Fast and Slow Pointer
- Identify Cycles
- Floyd Cycle
-
Binary Search
-
Two Pointers
-
Sliding Window
- Youtube - Encontro
- Exercicios:
-
Prefix Sum
-
Hash Map / Set
-
Stack
-
Recursividade
- Fundamentos
- Paradigma Funcional
-
Queue
- Youtube - Encontro
- Demo
- Exercicios:
-
Tree
-
Tree Traverse
-
k-ary tree
-
Binary Search Tree
-
Binary Heap
-
Algoritmos de Ordenação Básicos - Heap Sort
-
Algoritmos de Ordenação Básicos - Merge Sort
-
Algoritmos de Ordenação Básicos - Shell Sort
-
Algoritmos de Ordenação Básicos - Quick Sort
-
Algoritmos de Ordenação Básicos - Introdução a Grafos
-
...