logo

Programa de clasificación de burbujas en C

Ordenamiento de burbuja es un algoritmo de clasificación simple e intuitivo. Intercambia repetidamente elementos adyacentes si están en el orden incorrecto hasta que se ordena la matriz. En este algoritmo, el elemento más grande 'sube' hasta el final de la matriz en cada iteración. La clasificación de burbujas es ineficiente para conjuntos de datos grandes, pero es útil para fines educativos y conjuntos de datos pequeños. En este artículo, implementaremos el algoritmo de clasificación de burbujas en el lenguaje de programación C.

El primer paso es definir la función de clasificación de burbujas. Esta función toma una matriz de números enteros y el tamaño de la matriz como parámetros. La función no devuelve nada ya que modifica la matriz original. Aquí está el definición de función:

 void bubble_sort(int arr[], int n) { int i, j; for (i = 0; i <n - 1; i++) { for (j="0;" j <n i j++) if (arr[j]> arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } </n>

La función tiene dos bucles. El bucle exterior va desde el primer elemento hasta el penúltimo elemento de la matriz. El bucle interno va desde el primer elemento hasta el penúltimo elemento de la parte no ordenada de la matriz. La condición del bucle interno es n - i - 1 porque los últimos i elementos de la matriz ya están ordenados.

En cada iteración del bucle interno, comparamos elementos adyacentes. Si el elemento izquierdo es mayor que el elemento derecho, los intercambiamos. Una vez que se completa el bucle interno, se garantiza que el elemento más grande estará al final de la parte sin clasificar de la matriz.

Ahora podemos escribir la función principal para probar nuestra implementación de clasificación de burbujas. Aquí está la función principal junto con la parte anterior:

Programa C:

 #include void bubble_sort(int arr[], int n) { int i, j; for (i = 0; i <n - 1; i++) { for (j="0;" j <n i j++) if (arr[j]> arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } int main() { int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr) / sizeof(arr[0]); bubble_sort(arr, n); printf(&apos;Sorted array: &apos;); for (int i = 0; i <n; i++) { printf('%d ', arr[i]); } return 0; < pre> <p>The main function creates an integer array arr of size 7 and initializes it with random numbers. We then calculate the size of the array by dividing the size of the array by the size of an integer element. Next, we call the bubble_sort function to sort the array. Finally, we print the sorted array using a for loop.</p> <p> <strong>When we run the program, we should see the following output:</strong> </p> <pre> Sorted array: 11 12 22 25 34 64 90 </pre> <p>This output shows that our bubble sort implementation correctly sorted the array in ascending order.</p> <p>To run the program, we need to compile it using a C compiler. Here is an example <strong>compilation command for GCC:</strong> </p> <pre> gcc -o bubble_sort bubble_sort.c </pre> <p>This command compiles the bubble_sort.c file and produces an executable file named bubble_sort.</p> <p>In summary, the bubble sort algorithm repeatedly swaps adjacent elements until the array is sorted. The algorithm has a time complexity of O(n<sup>2</sup>), which makes it inefficient for large data sets. However, it is useful for educational purposes and small data sets. We implemented the bubble sort algorithm in C programming language and tested it using a simple example.</p> <h3>Characteristics:</h3> <ul> <li>Bubble sort is a simple sorting algorithm.</li> <li>It works by repeatedly swapping adjacent elements if they are in the wrong order.</li> <li>The algorithm sorts the array in ascending or descending order.</li> <li>It has a time complexity of O(n<sup>2</sup>) in the worst case, where n is the size of the array.</li> </ul> <h3>Usage:</h3> <ul> <li>Bubble sort is useful for educational purposes and small data sets.</li> <li>It is not suitable for large data sets because of its time complexity.</li> </ul> <h3>Advantages:</h3> <ul> <li>Bubble sort is easy to understand and implement.</li> <li>It requires minimal additional memory space to perform the sorting.</li> </ul> <h3>Disadvantages:</h3> <ul> <li>It is not efficient for large data sets because of its time complexity.</li> <li>It has poor performance compared to other sorting algorithms, such as quicksort and mergesort.</li> </ul> <h2>Conclusion:</h2> <p>Bubble sort is a simple and intuitive sorting algorithm that is useful for educational purposes and small data sets. However, its time complexity makes it inefficient for large data sets. Therefore, it is not commonly used in real-world applications. Other sorting algorithms, such as quicksort and mergesort, are more efficient for large data sets.</p> <hr></n;></n>

Este resultado muestra que nuestra implementación de clasificación de burbujas clasificó correctamente la matriz en orden ascendente.

Para ejecutar el programa, necesitamos compilarlo usando un compilador de C. Aquí hay un ejemplo comando de compilación para GCC:

 gcc -o bubble_sort bubble_sort.c 

Este comando compila el archivo bubble_sort.c y produce un archivo ejecutable llamado bubble_sort.

En resumen, el algoritmo de clasificación de burbujas intercambia repetidamente elementos adyacentes hasta que se ordena la matriz. El algoritmo tiene una complejidad temporal de O(n2), lo que lo hace ineficiente para grandes conjuntos de datos. Sin embargo, es útil para fines educativos y pequeños conjuntos de datos. Implementamos el algoritmo de clasificación de burbujas en el lenguaje de programación C y lo probamos usando un ejemplo simple.

Características:

  • La clasificación de burbujas es un algoritmo de clasificación simple.
  • Funciona intercambiando repetidamente elementos adyacentes si están en el orden incorrecto.
  • El algoritmo ordena la matriz en orden ascendente o descendente.
  • Tiene una complejidad temporal de O(n2) en el peor de los casos, donde n es el tamaño de la matriz.

Uso:

  • La clasificación de burbujas es útil con fines educativos y pequeños conjuntos de datos.
  • No es adecuado para grandes conjuntos de datos debido a su complejidad temporal.

Ventajas:

  • La clasificación de burbujas es fácil de entender e implementar.
  • Requiere un espacio de memoria adicional mínimo para realizar la clasificación.

Desventajas:

  • No es eficiente para grandes conjuntos de datos debido a su complejidad temporal.
  • Tiene un rendimiento deficiente en comparación con otros algoritmos de clasificación, como Quicksort y mergesort.

Conclusión:

Bubble sort es un algoritmo de clasificación simple e intuitivo que resulta útil con fines educativos y pequeños conjuntos de datos. Sin embargo, su complejidad temporal lo hace ineficiente para grandes conjuntos de datos. Por lo tanto, no se utiliza habitualmente en aplicaciones del mundo real. Otros algoritmos de clasificación, como Quicksort y mergesort, son más eficientes para grandes conjuntos de datos.