Giter Club home page Giter Club logo

cs's Introduction

cs

Conjunto de Habilidades de Programação em CS

Pontuação Referencial

  1. Nunca ouvi falar sobre isso antes
  2. Já ouvi falar, mas não conheço os detalhes
  3. Conheço, mas ainda não programei/usei
  4. Posso programar/usar, mas não com muita confiança ou rapidez
  5. Posso programar/usar com rapidez e confiança

Estruturas de Dados, Algoritmos, & Palavras-Chave de Programação

  1. Conceitos Básicos de Programação: Sequência, Seleção, Repetição

  2. Recursão/Backtracking

  3. Problema Ad-Hoc

  4. C++ STL (Standard Template Library)

  5. Java API (Application Programming Interface)

  6. Array/C++ STL vector/Java Vector

  7. Técnicas Básicas de Bitmask, Manipulação de Bits

  8. Lista Encadeada/C++ STL list/Java LinkedList

  9. Pilha/Fila/Fila Dupla/C++ STL stack/queue/deque/Java Stack/Queue/Deque

  10. Árvore Binária de Busca/C++ STL map/set/Java TreeMap/TreeSet

  11. Árvore Binária Balanceada/AVL/Red-Black (com seu próprio código)

  12. Tabela Hash/Java HashMap (C++11 unordered_map)

  13. Heap/Fila de Prioridade/C++ STL priority_queue/Java PriorityQueue

  14. Grafo/Matriz de Adjacência/Lista de Adjacência/Lista de Arestas

  15. Conjuntos Disjuntos Union-Find

  16. Árvore de Segmentos

  17. Árvore Binária Indexada (BIT/Binary Indexed Tree/Árvore de Fenwick)

  18. Bubble Sort

  19. Insertion Sort

  20. Selection Sort

  21. Merge Sort

  22. Quick Sort

  23. Heap Sort

  24. Ordenação com Vários Campos (ex.: ordenação com Struct, Classes)

  25. Counting Sort

  26. Contagem de Inversões (com Merge Sort)

  27. Busca Completa/Força Bruta/Backtracking Recursivo/Iterativo

  28. Consigo resolver o problema das N-Rainhas até N ≤ 14 (N-Queens Problem)

  29. Busca em Espaço de Estados (State-Space Search)

  30. Meet in the Middle (Busca Bidirecional)

  31. Algoritmo A* (tradicional)

  32. Técnica de Aprofundamento Iterativo (IDA*)

  33. Princípios de Divisão & Conquista

  34. Técnicas de Busca Binária

  35. Gulosos

  36. Ideias Básicas de Programação Dinâmica (PD)

  37. Soma Máxima 1D/2D/etc

  38. Algoritmo de Kadane para Soma Máxima 1D/2D/etc

  39. Longest Increasing Subsequence (LIS/Maior Subsequência Crescente)

  40. Solução em tempo O(n log k) para LIS

  41. Coin Change (CC/Problema do Troco)

  42. Algoritmo da Mochila 0-1/Soma de Subconjuntos (Subset Sum)

  43. Problema do Caixeiro Viajante (Traveling Salesman Problem/TSP)

  44. PD e sua relação com DAGs (Grafos Direcionados Acíclicos)

  45. PD "em Árvore"

  46. Longest Common Subsequence (LCS/Maior Subsequência Comum)

  47. Alinhamento de Strings/Distância de Edição

  48. Técnicas de Otimização de PD

  49. Caixeiro Viajante Bitônico (Bitonic TSP)

  50. Multiplicação de Cadeia de Matrizes (Matrix Chain Multiplication/MCM)

  51. Árvore Binária de Busca Ótima (Optimal Binary Search Tree/OBST)

  52. Busca/Percurso em Profundidade (Depth-First Search/DFS)

  53. Ordenação Topológica

  54. Encontrar Componentes Conectadas/Flood Fill

  55. Encontrar Pontos de Articulação/Pontes em tempo O(V+E)

  56. Encontrar Comp. Fortemente Conectadas (SCC) num Grafo Dirigido em O(V+E)

  57. Busca/Percurso em Amplitude (Breadth-First Search/DFS)

  58. Kruskal (Árvore Geradora Mínima/Minimum Spanning Tree/MST)

  59. Prim (Árvore Geradora Mínima/Minimum Spanning Tree/MST)

  60. Dijkstra (Caminho Mínimo de Fonte Única)

  61. Bellman Ford (Caminho Mínimo de Fonte Única)

  62. Floyd Warshall (Caminho Mínimo entre Todos os Pares)

  63. Ford Fulkerson/Edmonds Karp (Fluxo Máximo, Corte Mínimo)

  64. Caminhos Independentes e Arestas-Disjuntos

  65. Fluxo (Máximo) a Custo Mínimo

  66. Caminhos menores/maiores/entre Todos os Pares em uma Árvore

  67. Menor Ancestral Comum (Lowest Common Ancestor/LCA)

  68. Grafo/Caminho/Ciclo Euleriano

  69. Problema do Carteiro Chinês

  70. Grafo Direcionado Acíclico (Directed Acyclic Graph/DAG)

  71. Caminho Mínimo/Máximo em DAGs

  72. Contando Caminhos em DAGs

  73. Cobertura do Menor Caminho (Min Path Cover) em DAGs

  74. Grafo Bipartido

  75. Emparelhamento Máximo em Grafos Bipartidos (MCBM)

  76. Cobertura Mínima de Vértices em Grafos Bipartidos (Teorema de Konig)

  77. Maior Conjunto Independente/Dominante em Grafos Bipartidos

  78. Algoritmo de Caminho Aumentante p/ Emp. Máximo em Grafos Bipartidos

  79. Algoritmo de Hopcroft–Karp p/ Emp. Máximo em Grafos Bipartidos

  80. Algoritmo Kuhn Munkres/Húngaro p/ Emp. Máximo em Grafos Bipartidos

  81. Algoritmo de Edmonds (Blossom Shrinking) para Emparelhamento Geral

  82. Sequências e Sistemas de Numeração

  83. Polinômios

  84. Big Integer

  85. Número Base

  86. Combinatória

  87. Fatorial/Fibonacci

  88. Teoria dos Números

  89. Geração de Números Primos: Crivo de Eratóstenes

  90. Teste de Primos

  91. Algoritmo de Miller–Rabin

  92. Fatoração de Primos por Divisão por Tentativa

  93. Algoritmo Rho de Pollard (Pollard's Rho)

  94. Crivo Modificado

  95. MDC/MMC/Algoritmo de Euclides

  96. Euclides Estendido/Equação Linear Diofantina

  97. Phi de Euler

  98. Aritmética Modular

  99. Fibonacci/Factorial

  100. Divisibilidade

  101. Detecção de Ciclos/Algoritmo de Tortoise–Hare

  102. Exponenciação Rápida via Divisão & Conquista

  103. Exponenciação de Matrizes

  104. Álgebra Linear/Eliminação Gaussiana

  105. Gramáticas BNF (Forma(lismo) de Backus–Naur

  106. Algoritmo Knuth–Morris–Pratt (KMP) para Correspondência de Strings

  107. Aho–Corasick

  108. Trie de Sufixos e suas aplicações

  109. Árvore de Sufixos e suas aplicações

  110. Construção de Array de Sufixos em tempo O(n log n) e Aplicações

  111. Geometria Básica, ex.: área, perímetro, distância Euclidiana, Trigonometria

  112. Intersecção entre Segmentos de Reta

  113. Teste do Sentido Anti-Horário (CCW Test)

  114. Teste do Incírculo

  115. Área e Perímetro de um Polígono Arbitrário

  116. Testar se um Polígono é Convexo

  117. Testar se um Ponto está dentro de um Polígono

  118. Cortar um Polígono (Convexo) com uma Linha Reta

  119. Varredura de Graham (Fecho Convexo)

  120. Paradigma da Varredura no Plano

  121. Intersecção de Área ou Volume

  122. Triangulação

  123. Problema dos Pares Mais Próximos

  124. Estatísticas de Ordem: Algoritmo de Seleção em Tempo Linear

  125. Jogos clássicos de Tabuleiro, Cartas, Xadrez, jogos populares de Intelig. Artificial

  126. Ambiente e sistema operacional (Ubuntu) Linux

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.