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 |