Algoritmos do C++
Da cppreference.com
< cpp
As funções abaixo estão definidas no cabeçalho <algorithm>
[editar] Operações que não modificam a sequência
| for_each | aplica uma função à uma sequência de elementos |
| count | retorna o número de vezes que um certo elemento aparece na sequência |
| count_if | retorna o número de elementos que satisfazem uma certa condição |
| mismatch | encontra a primeira posição onde duas sequências diferem |
| equal | determina se duas sequências de elementos são iguais |
| find | encontra a posição de um item em uma certa sequência |
| find_if | encontra o primeiro elemento que satisfaz uma certa condição |
| find_end | encontra a última ocorrência de uma subsequência de elementos em uma certa sequência |
| find_first_of | busca pela primeira ocorrência de qualquer elemento de um conjunto em uma certa sequência |
| adjacent_find | encontra dois itens adjacentes que sejam idênticos (ou que satisfaçam uma outra condição) |
| search | procurar por uma sequência de elementos |
| search_n | procura um elemento que se repita N vezes consecutivas em uma certa sequência |
[editar] Operações que modificam a sequência
| copy | copia uma sequência de elementos para algum lugar |
| copy_backward | copia uma sequência de elementos de trás para a frente |
| fill | atribui um valor aos elementos de uma certa sequência |
| fill_n | atribui um valor a parte dos elementos de uma certa sequência |
| transform | aplica uma função aos elementos de uma certa sequência |
| generate | atribui o valor retornado por uma função aos elementos de uma certa sequência |
| generate_n | atribui o valor retornado por uma função a N elementos de uma certa sequência |
| remove | remove elementos iguais a um certo valor |
| remove_if | remove todos os elementos que satisfazem uma certa condição |
| remove_copy | copia uma sequência de elementos ignorando aqueles que sejam iguais a um certo valor |
| remove_copy_if | cria uma cópia de uma certa sequência, removendo os elementos que satisfazem uma certa condição |
| replace | substitui todas as ocorrências de um elemento numa certa sequência por outro |
| replace_if | substitui os elementos que satisfazem uma certa condição |
| replace_copy | copia uma sequência, substituindo certos elementos por outros |
| replace_copy_if | copia uma sequência de elementos, substituindo aqueles que satisfazem uma certa condição |
| swap | troca os valores de dois objetos |
| swap_ranges | troca duas sequências de elementos |
| iter_swap | troca os elementos apontados por dois iteradores |
| partition | separa uma sequência de elementos em dois grupos |
| stable_partition | separa os elementos de uma sequência em dois grupos, mantendo a ordem relative entre eles |
| reverse | inverte a ordem dos elementos de uma sequência |
| reverse_copy | cria uma cópia de uma sequencia com os elementos na ordem inversa |
| rotate | move os elementos de uma sequência um certo de número de posição para a esquerda |
| rotate_copy | copia e move os elementos de uma certa sequência |
| random_shuffle | reordena de forma aleatória os elementos de uma certa sequência |
| unique | remove elementos consecutivos e duplicados em uma sequência de elementos |
| unique_copy | cria uma cópia que não contém elementos consecutivos e duplicados a partir de uma sequência |
[editar] Operações de ordenação (em sequências ordenadas)
| sort | ordena uma sequência em ordem crescente |
| partial_sort | ordena os N primeiros elementos de uma sequência |
| partial_sort_copy | copia e ordena parte dos elementos de uma sequência |
| stable_sort | ordena os elementos de uma sequência, mantendo a ordem original entre elementos iguais |
| nth_element | insere um elemento em sua posição correta na sequência ordenada de forma que nenhum elemento a sua esquerda seja maior que qualquer elemento a sua direita |
[editar] Operações de busca binária (em sequências ordenadas)
| lower_bound | procura a primeira posição onde um elemento pode ser inserido mantendo a ordenação da sequência |
| upper_bound | procura a última posição onde um elemento pode ser inserido mantendo a ordenação da sequência |
| binary_search | determina se uma sequência contém um certo elemento |
| equal_range | procura por uma sequência de elementos que seja igual a um certo elemento |
[editar] Operações de conjuntos (em sequências ordenadas)
| merge | junta duas sequências ordenadas |
| inplace_merge | junta duas subsequências ordenadas alterando a sequência original |
| includes | determina se um conjunto é um subconjunto de um certo conjunto |
| set_difference | calcula a diferença entre dois conjuntos |
| set_intersection | calcula a intersecção entre dois conjuntos |
| set_symmetric_difference | calcula a diferença simétrica entre dois conjuntos |
| set_union | calcula a união de dois conjuntos |
[editar] Operaçõs de heap
| is_heap | Determina se uma certa sequência é um heap |
| make_heap | cria um heap a partir de uma sequência de elementos |
| push_heap | adiciona um elemento a um heap |
| pop_heap | remove o maior elemento de um heap |
| sort_heap | transforma um heap em uma sequência ordenada de elementos |
[editar] Operações de mínimo/máximo
| max | retorna o maior de dois elementos |
| max_element | retorna o maior elemento de uma sequência |
| min | retorna o menor de dois elementos |
| min_element | retorna o menor elemento de uma sequência |
| lexicographical_compare | Determina se uma sequência é lexicograficamente menor que outra |
| next_permutation | todo |
| prev_permutation | todo |
[editar] Operações numéricas
As funções abaixo estão definidas no cabeçalho <numeric>
| accumulate | calcula o somatório de uma sequência de elementos |
| inner_product | calcula o produto interno de duas sequências de elementos |
| adjacent_difference | calcula as diferenças entre elementos adjacentes em uma sequência |
| partial_sum | todo |
[editar] Biblioteca C
As funções abaixo estão definidas no cabeçalho <cstdlib>
| qsort | ordena uma sequência de elementos de tipo indefinido |
| bsearch | procura um elemento de tipo indefinido em um vetor |