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++.



