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 - Exercícios Resolvidos de CQuantidade de visualizações: 513 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: ---------------------------------------------------------------------- Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Este código foi útil? Paga um cafezinho pra mim :-( PIX: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #define TAM_VETOR 10 // função principal do programa int main(int argc, char *argv[]){ // vamos declarar e construir um vetor de 10 elementos int valores[TAM_VETOR]; int i, j, temp; // vamos pedir que o usuário informe os valores for(i = 0; i < TAM_VETOR; i++){ printf("Informe o valor para o índice %d: ", i); scanf("%d", &valores[i]); } // vamos mostrar o vetor informado printf("\nO array informado foi:\n\n"); for(i = 0; i < TAM_VETOR; i++){ printf("%d ", valores[i]); } // vamos ordenar os elementos do vetor usando a ordenação da bolha // laço externo de trás para frente for(i = TAM_VETOR - 1; i > 1; i--){ for(j = 0; j < i; j++){ // laço interno vai no fluxo normal if(valores[j] > valores[j + 1]){ // temos que trocá-los de lugar temp = valores[j]; valores[j] = valores[j + 1]; valores[j + 1] = temp; } } } // vamos exibir o vetor já ordenado printf("\n\nO array ordenado é:\n\n"); for(i = 0; i < TAM_VETOR; i++){ printf("%d ", valores[i]); } printf("\n\n"); system("PAUSE"); return 0; } |
![]() |
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 |
TypeScript - Como calcular o coeficiente angular de uma reta em TypeScript dados dois pontos no plano cartesiano |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |