💻
Micro-fundamentos - AEDs
  • Introdução
  • Algoritmos e Estruturas de Dados 1
    • Parte 1 - Começando com o básico
      • Criando nosso primeiro algoritmo
      • Estruturas de dados primitivas
      • Atribuição e declaração de variáveis
      • Leitura e escrita de dados
      • Estruturas condicionais e Operadores relacionais
      • Operadores aritméticos
      • Operadores lógicos
      • Estruturas de repetição
      • Funções e escopo
    • Parte 2 - Conceitos avançados
      • Introdução a ponteiros
      • Estruturas de dados não primitivas
      • Entendendo-recursão
      • Retornando argumentos de funções recursivas
      • Como a máquina interpreta seus códigos
    • Parte 3 - Conhecendo POO e seus Princípios
      • O que é Programação Orientada a Objetos?
      • Criando nossa primeira classe
      • Entendendo Encapsulação
      • Entendendo Herança
      • Entendendo Polimorfismo
  • Algoritmos e Estruturas de Dados 2
    • Parte 1 - Complexidade e Programação Competitiva
      • Complexidade e notação Big O
      • Complexidade em funções recursivas
      • Crescimento de funções - Notação Theta e Omega
      • Programação competitiva
    • Parte 3 - Algoritmos de pesquisa
      • Busca linear
    • Parte 4 - Ordenação Interna
      • Quicksort
    • Parte 5 - Tipos Abstratos de Dados (TAD)
    • Parte 6 - Estruturas Flexíveis e Estáticas
    • Parte 7 - Árvores e Tabela Hash
      • Árvore Binária
  • Algoritmos e Estruturas de Dados 3
    • CRUD
    • Intercalação balanceada
  • C
    • Argumentos-de-entrada
    • debug
      • Introducao-ao-gdb
      • Introducao-ao-valgrind
    • ponteiro
      • Ponteiros e Alocação de Memória em C
    • string
      • Strings em C
      • Leitura-de-Strings-em-C
  • Java
    • Nocoes-basicas
    • Argumentos-de-entrada
    • Debug em Java
      • java-debugger-tool
      • visual-studio-debugger
    • string
      • String-em-Java
    • Tratamento de Exceções em Java
      • try-catch-e-o-throws
  • COMO-CONTRIBUIR
Powered by GitBook
On this page
  • Você vai aprender
  • Pré-requisitos
  • Definição
  • Plataformas
  1. Algoritmos e Estruturas de Dados 2
  2. Parte 1 - Complexidade e Programação Competitiva

Programação competitiva

Você vai aprender

  • O que é programação competitiva

  • A importância de programação competitiva para programadores

  • Onde participar

Pré-requisitos

  • Conhecimento de cálculo de complexidade de tempo e espaço

Definição

A programação competitiva é uma atividade em que programadores competem entre si para resolver problemas algorítmicos em um determinado período de tempo. Esses problemas geralmente envolvem uma série de restrições e exigem que os participantes escrevam código eficiente e preciso para obter a solução correta.

Os competidores geralmente usam uma linguagem de programação de sua escolha para resolver esses problemas, e seus programas são avaliados em relação à sua precisão, velocidade e eficiência. As competições de programação competitiva ocorrem em todo o mundo, desde competições locais até competições internacionais.

Plataformas

Algumas plataformas de programação competitiva, como o Codeforces, o Topcoder e o Beecrowd, oferecem problemas de programação em uma variedade de níveis de dificuldade, permitindo que os participantes treinem e melhorem suas habilidades. Além disso, as competições de programação competitiva podem ser usadas como uma forma de recrutamento para empresas de tecnologia e software, que podem usar essas competições para identificar candidatos talentosos.

Em resumo, a programação competitiva é uma atividade em que os participantes competem para resolver problemas algorítmicos em um período de tempo limitado, usando suas habilidades de programação para escrever código preciso e eficiente. É uma forma popular de treinar habilidades de programação e também pode ser usada para recrutamento de talentos na área de tecnologia.

PreviousCrescimento de funções - Notação Theta e OmegaNextParte 3 - Algoritmos de pesquisa

Last updated 2 years ago