Bubble Sort
O algoritmo de bubble sort consiste em comparar pares consecutivos e, caso necessário, trocas as posições quando o elemento a esquerda for maior do que a da direita.

Note
Bubble sort é o algoritmo de ordenação com o pior desempenho com uma complexidade de tempo
.
Implementação:
void bubble_sort(int v[], int n) {
// repetir (n – 1) vezes
for (int i = 1; i < n; ++i) {
// percorrer cada posição do vetor
for (int j = 0; j < n - 1; ++i) {
// se elemento atual for maior que o próximo
if (v[i] > v[i + 1]) {
// trocar os elementos entre as 2 posições
trocar(v, i, i + 1);
}
}
}
}Existe uma variação desse algoritmo chamado de bubble sort com sentinela que basicamente adicionar uma variável booleana “sentinela”, inicialmente com valor false, para indicar se houve alguma alteração no vetor. Se alguma troca for feita o valor é alterado para true, caso contrário, para false e então o algoritmo é encerrado.
Implementação:
void bubble_sort(int v[], int n) {
for (int i = 1; i <= n - 1; ++i) {
bool sentinela = false;
for (int j = 0; j < n - 1; ++i) {
if (v[i] > v[i + 1]) {
trocar(v, i, i + 1);
mudou = true;
}
}
if (!sentinela) {
return;
}
}
}