Clasificación burbuja con arreglo dinámico

C++Beginner
Practicar Ahora

Introducción

En este laboratorio, aprenderemos a escribir un algoritmo para implementar la técnica de clasificación burbuja en C++. La clasificación burbuja es una de las técnicas de clasificación más populares y simples, donde comparamos dos elementos adyacentes en un arreglo y los intercambiamos de posición si no están ordenados correctamente.

Declarar las variables y archivos de encabezado necesarios

Creamos un nuevo archivo llamado main.cpp en el directorio ~/project con el siguiente comando:

touch ~/project/main.cpp

Comenzamos declarando las variables y los archivos de encabezado necesarios para el programa. En este paso, incluiremos el archivo de encabezado iostream y definiremos el espacio de nombres std.

#include<iostream>
using namespace std;

Declarar una función para implementar el algoritmo general de clasificación burbuja

Aquí, declararemos una función "bubble_sort" en el programa C++ que aceptará el arreglo a ordenar y el tamaño del arreglo. La función contendrá la implementación de la técnica de clasificación burbuja con la ayuda de bucles for, intercambio y declaraciones 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 una función para implementar el algoritmo de clasificación burbuja optimizada

En la clasificación burbuja optimizada, comprobaremos en cada pase si se intercambiaron elementos o no. Si no se produjeron intercambios en el último pase, significa que hemos ordenado el arreglo. En este paso, implementaremos la función "bubble_sort" para implementar un algoritmo de clasificación burbuja optimizada. La función acepta el arreglo a ordenar y el tamaño del arreglo.

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 la función principal

Aquí, definiremos la función principal en la que declararemos el arreglo a ordenar y su tamaño. En este paso, también llamaremos a la función "bubble_sort" para ordenar el arreglo en orden ascendente.

int main(){

    int arr[]={5,6,9,2,3};
    int n = sizeof(arr)/(sizeof(arr[0]));
    bubble_sort(n,arr);
    cout<<"Elements after sorting of the array:- "<<endl;
    for(int i=0;i<n;i++){
        cout<<arr[i]<<" ";
    }
    return 0;
}

Compilar y ejecutar el código

En este paso, compilaremos y ejecutaremos el código en la terminal del sistema Ubuntu. Para compilar el código, escriba el siguiente comando:

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

Para ejecutar el código, escriba el siguiente comando:

./main

Resumen

En este laboratorio, hemos aprendido con éxito a implementar la clasificación burbuja utilizando un arreglo dinámico en C++. También aprendimos sobre una técnica de clasificación burbuja optimizada que funciona efectivamente para algunos arreglos seleccionados pero eficientes. Siguiendo el tutorial anterior, puede implementar la técnica de clasificación burbuja para ordenar un arreglo en orden ascendente o descendente utilizando un arreglo dinámico en C++.