Ordenar cursos con el algoritmo de burbuja

CBeginner
Practicar Ahora

Introducción

En este proyecto, aprenderás a organizar una lista de cursos de programación utilizando el algoritmo de ordenamiento burbuja. Los cursos se ordenarán en orden lexicográfico, lo que te permitirá ver y resumir fácilmente los lenguajes de programación que has aprendido.

👀 Vista previa

$ gcc courses.c -o courses
$./courses
ASP
ASP.NET
BASIC
C
C#
C++
COBOL
JAVA
PASCAL
PHP

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo calcular correctamente la longitud de un array
  • Cómo modificar el tipo de parámetro de una función de ordenamiento
  • Cómo corregir la lógica de comparación y conmutación en el algoritmo de ordenamiento

🏆 Logros

Después de completar este proyecto, podrás:

  • Organizar una lista de cursos de programación utilizando el algoritmo de ordenamiento burbuja
  • Comprender la importancia del cálculo correcto de la longitud del array y los tipos de parámetros de función
  • Aplicar la lógica correcta de comparación y conmutación en un algoritmo de ordenamiento
  • Demostrar tu capacidad para seguir instrucciones paso a paso y modificar el código existente para alcanzar el resultado deseado

Corregir el cálculo de la longitud del arreglo

En este paso, aprenderás a calcular correctamente la longitud del array courses.

  1. Abra el archivo courses.c ubicado en el directorio /home/labex/project/.

  2. Encuentre la siguiente línea de código:

    int n = strlen(courses);

    Esta línea utiliza la función strlen para calcular la longitud del array courses, lo cual es incorrecto. La función strlen se utiliza para calcular la longitud de una cadena de texto, no de un array.

  3. Reemplace la línea anterior con la siguiente:

    int n = sizeof(courses) / sizeof(courses[0]);

    Esta línea utiliza el operador sizeof para calcular el tamaño total del array courses, y luego lo divide por el tamaño de un solo elemento para obtener el número de elementos en el array.

✨ Revisar Solución y Practicar

Cambiar el tipo de parámetro de la función de clasificación

En este paso, aprenderás a cambiar el tipo de parámetro de la función sort.

  1. En el archivo courses.c, encuentre la definición de la función sort:

    void sort(char p[], int n)
  2. Cambie el tipo de parámetro de char p[] a char *p[]. La definición actualizada de la función debería verse así:

    void sort(char *p[], int n)

    Este cambio es necesario porque estamos trabajando con un array de cadenas (un array de punteros), no una sola cadena.

✨ Revisar Solución y Practicar

Corregir la lógica de comparación y conmutación

En este paso, aprenderás a corregir la lógica de comparación y conmutación en la función sort.

  1. En la función sort, encuentre el siguiente código:

    if (k!= j)
    {
        tmp = p[k];
        p[k] = p[i];
        p[i] = tmp;
    }
  2. Reemplace la condición if (k!= j) con if (k!= i). El código actualizado debería verse así:

    if (k!= i)
    {
        tmp = p[k];
        p[k] = p[i];
        p[i] = tmp;
    }

    Este cambio es necesario para comprobar si se ha encontrado el elemento más pequeño en la iteración actual (indexado por i).

Después de completar estos tres pasos, tu archivo courses.c debería estar listo para la compilación y la ejecución. Ahora puedes pasar al siguiente paso.

  1. En la función sort, complete la sección // TODO: de la siguiente manera:

    {
         if (strcmp(p[j], p[k]) < 0)
         {
             k = j;
         }
    }
  2. Ejecute el siguiente comando:

gcc courses.c -o courses
./courses
  1. Verifique que el programa produzca la salida esperada.
ASP
ASP.NET
BASIC
C
C#
C++
COBOL
JAVA
PASCAL
PHP
✨ Revisar Solución y Practicar

Resumen

¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.