Você está aqui: C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Ordenação e Pesquisa (Busca) |
Como usar a Ordenação da Bolha em C++ para ordenar os valores de um vetor em ordem crescente ou decrescente - Desafio de Programação Resolvido em C++Quantidade de visualizações: 481 vezes |
|
Pergunta/Tarefa: A Ordenação da Bolha, ou ordenação por flutuação (literalmente "por bolha"), também chamada de Bubble Sort, é um algoritmo de ordenação dos mais simples. A ideia é percorrer o array diversas vezes, a cada passagem fazendo flutuar para o topo o maior elemento da sequência. Essa movimentação lembra a forma como as bolhas em um tanque de água procuram seu próprio nível, e disso vem o nome do algoritmo. No melhor caso, o algoritmo executa n operações relevantes, onde n representa o número de elementos do vetor. No pior caso, são feitas n2 operações. A complexidade desse algoritmo é de ordem quadrática. Por isso, ele não é recomendado para programas que precisem de velocidade e operem com quantidade elevada de dados. Escreva um programa C++ que declara, constrói um vetor de 10 inteiros e peça para o usuário informar os valores de seus elementos. Em seguida use a ordenação da bolha para ordenar os elementos em ordem crescente. Sua saída deverá ser parecida com: Informe o valor para o índice 0: 84 Informe o valor para o índice 1: 23 Informe o valor para o índice 2: 9 Informe o valor para o índice 3: 5 Informe o valor para o índice 4: 11 Informe o valor para o índice 5: 3 Informe o valor para o índice 6: 50 Informe o valor para o índice 7: 7 Informe o valor para o índice 8: 2 Informe o valor para o índice 9: 73 O array informado foi: 84 23 9 5 11 3 50 7 2 73 O array ordenado é: 2 3 5 7 9 11 23 50 73 84 Veja a resolução comentada deste exercício usando C++:
#include <iostream>
#define TAM_VETOR 10
using namespace std;
// função principal do programa
int main(int argc, char *argv[]){
// vamos declarar e construir um vetor de 10 elementos
int valores[TAM_VETOR];
// vamos pedir que o usuário informe os valores
for(int i = 0; i < TAM_VETOR; i++){
cout << "Informe o valor para o índice " << i << ": ";
cin >> valores[i];
}
// vamos mostrar o vetor informado
cout << "\nO array informado foi:\n\n";
for(int i = 0; i < TAM_VETOR; i++){
cout << valores[i] << " ";
}
// vamos ordenar os elementos do vetor usando a ordenação da bolha
// laço externo de trás para frente
for(int i = TAM_VETOR - 1; i > 1; i--){
for(int j = 0; j < i; j++){ // laço interno vai no fluxo normal
if(valores[j] > valores[j + 1]){ // temos que trocá-los de lugar
int temp = valores[j];
valores[j] = valores[j + 1];
valores[j + 1] = temp;
}
}
}
// vamos exibir o vetor já ordenado
cout << "\n\nO array ordenado é:\n\n";
for(int i = 0; i < TAM_VETOR; i++){
cout << valores[i] << " ";
}
cout << "\n" << endl;
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
|
|
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
|
AutoCAD VBA - Como criar uma linha no AutoCAD usando Autocad VBA e a função AddLine() do objeto ModelSpace |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





