Bubble Sort Usando Array Dinâmico

C++Beginner
Pratique Agora

Introdução

Neste laboratório, aprenderemos a escrever um algoritmo para implementar a técnica de ordenação bubble sort em C++. Bubble sort é uma das técnicas de ordenação mais populares e simples, onde comparamos dois elementos adjacentes em um array e trocamos suas posições se não estiverem organizados corretamente.

Declarar as Variáveis e Arquivos de Cabeçalho Necessários

Criaremos um novo arquivo chamado main.cpp no diretório ~/project usando o seguinte comando:

touch ~/project/main.cpp

Primeiramente, começaremos declarando as variáveis e os arquivos de cabeçalho necessários para o programa. Nesta etapa, incluiremos o arquivo de cabeçalho iostream e definiremos o namespace std.

#include<iostream>
using namespace std;

Declarar uma Função para Implementar o Algoritmo Geral de Bubble Sort

Aqui, declararemos uma função "bubble_sort" no programa C++ que aceita o array a ser ordenado e o tamanho do array. A função conterá a implementação da técnica bubble sort com a ajuda de loops for, troca (swapping) e instruções if/else.

int bubble_sort(int n,int array[]){
    int temp;
    for(int i=0;i<n-1;i++){
        for(int j=0;j<n-i-1;j--){
            if(array[j]>array[j+1]){
                temp=array[j];
                array[j]=array[j+1];
                array[j+1]=temp;
            }
        }
    }
return 0;
}

Declarar uma Função para Implementar o Algoritmo Otimizado de Bubble Sort

No bubble sort otimizado, verificaremos em cada passagem se algum elemento foi trocado ou não. Se nenhuma troca ocorreu na última passagem, isso implica que ordenamos o array. Nesta etapa, implementaremos a função "bubble_sort" para implementar um algoritmo de bubble sort otimizado. A função aceita o array a ser ordenado e o tamanho do array.

int bubble_sort(int n,int array[]){
    int temp, flag;
    for(int i=0;i<n-1;i++){
        flag = 0;
        for(int j=0;j<n-i-1;j++){
            if(array[j]>array[j+1]){
                temp=array[j];
                array[j]=array[j+1];
                array[j+1]=temp;
                flag=1;
            }
        }
        if(flag==0){
            break;
        }
    }
    return 0;
}

Definir a Função Principal (Main Function)

Aqui, definiremos a função principal na qual declararemos o array a ser ordenado e seu tamanho. Nesta etapa, também chamaremos a função "bubble_sort" para ordenar o array em ordem crescente.

int main(){

    int arr[]={5,6,9,2,3};
    int n = sizeof(arr)/(sizeof(arr[0]));
    bubble_sort(n,arr);
    cout<<"Elementos após a ordenação do array:- "<<endl;
    for(int i=0;i<n;i++){
        cout<<arr[i]<<" ";
    }
    return 0;
}

Compilar e Executar o Código

Nesta etapa, compilaremos e executaremos o código no terminal do sistema Ubuntu. Para compilar o código, digite o seguinte comando:

g++ ~/project/main.cpp -o main

Para executar o código, digite o seguinte comando:

./main

Resumo

Neste laboratório, aprendemos com sucesso a implementar o bubble sort usando array dinâmico em C++. Também aprendemos sobre uma técnica otimizada de bubble sort que funciona efetivamente para alguns arrays selecionados, mas eficientes. Seguindo o tutorial acima, você pode implementar a técnica de bubble sort para ordenar um array em ordem crescente ou decrescente usando array dinâmico em C++.