Algoritmos explicados - o que são e algoritmos de classificação comuns

Em sua forma mais básica, um algoritmo é um conjunto de instruções detalhadas passo a passo para concluir uma tarefa. Por exemplo, um algoritmo para fazer café em uma impressora francesa seria:

  1. Despeje água na chaleira, feche a tampa e ligue-a.
  2. Retire a tampa da prensa francesa e despeje 17 gramas de café moído.
  3. Quando a água da chaleira estiver fervendo, coloque 290 gramas de água quente na prensa francesa.
  4. Volte a colocar a tampa da prensa francesa com o êmbolo para cima.
  5. Espere 4 minutos.
  6. Pressione suavemente o êmbolo para baixo até atingir o fundo.
  7. Despeje o café em uma caneca.

Na ciência da computação, algoritmos comuns têm nomes como "Quicksort" e "Bogosort". Os algoritmos são frequentemente agrupados em diferentes categorias, como algoritmos de pesquisa, classificação e compactação. Além disso, os algoritmos podem ser descritos pela abordagem que leva para completar uma tarefa, como recursiva, retrocesso, dividir e conquistar, ganancioso e força bruta.

Os algoritmos costumam ser emparelhados com estruturas de dados, embora sejam fundamentalmente diferentes. Estruturas de dados são métodos de armazenamento de dados para que um algoritmo possa realizar operações facilmente.

Alguns exemplos comuns de estruturas de dados são arrays, pilhas, filas, listas vinculadas, árvores, gráficos, tabelas de hash e heaps.

Eficiência

Os algoritmos são freqüentemente julgados e comparados com base em sua eficiência e nos recursos de que necessitam. Uma das maneiras mais comuns de avaliar um algoritmo é examinar sua complexidade de tempo por meio de um método chamado notação Big O.

A notação Big O é uma maneira de descrever a velocidade ou complexidade de um algoritmo e mostra o pior caso de número de operações para um determinado tamanho de entrada. É importante entender o tempo de execução possível para diferentes algoritmos, especialmente ao trabalhar com conjuntos de dados grandes ou crescentes. A notação Big O torna mais fácil escolher o algoritmo certo para cada tarefa.

Algoritmos de classificação

Os algoritmos de classificação vêm em vários sabores, dependendo da sua necessidade. Alguns, muito comuns e amplamente utilizados são:

Ordenação rápida

Nenhuma discussão sobre classificação está completa sem mencionar a Classificação Rápida.

Mesclar Classificar

O algoritmo Merge Sort baseia-se na divisão e classificação de matrizes menores antes de mesclá-las em uma matriz classificada.

O currículo do freeCodeCamp enfatiza fortemente a criação de algoritmos. Isso ocorre porque o aprendizado de algoritmos é uma boa maneira de praticar as habilidades de programação. Os entrevistadores costumam testar os candidatos em algoritmos durante as entrevistas de emprego do desenvolvedor.