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: 582 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 <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--){ |
![]() |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Como calcular o ponto de interseção de duas retas em C - C para Geometria Analítica e Álgebra Linear |
Dicas e truques de outras linguagens |
JavaScript - Como filtrar os elementos de um array em JavaScript usando a função filter() - Vetores e matrizes em JavaScript |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |