Сортировка пузырьком - C (СИ) (77104)

Узнай цену своей работы

Формулировка задачи:

Добрый день! Пожалуйста, помогите с решением одной задачки. Я начинающий программист, поэтому много чего не понимаю. И так, надеюсь на Вашу поддержку. Дан массив:
char *mass[] = {"John", "Mery", "Peter", "Ann", "Emma"};
Задача - отсортировать элементы массива по алфавиту "Пузырьковым" способом. Причем сделать это нужно с помощью вызова алгоритма функции BoobleSort. Вот алгоритм:
void boobleSort(int *mass, int num)
{
    int i, j, temp;
 
    for(i=num-1; i>=0; i--)
        for(j=0; j<i; j++)
            if(mass[j] > mass[j+1])
                {temp = mass[j]; mass[j] = mass[j+1]; mass[j+1] = temp;}
Алгоритм, естественно, надо как-то видоизменить. Так же сказали пользоваться функцией strcmp(). Как с ней работать и что она делает я знаю. Проблемы: 1. Нужно передать массив в функцию. Я видел три способа передать массив, но при попытке использования работает только два.
void booblesort(char *mass)
- так выглядит прототип функции. Вызов
booblesort(mass);
- не работает. В теле функции стоит вывод первого элемента массива
printf("%s", mass[0]);
При попытке вывода - крах. Если переделать прототип в
void booblesort(char *mass[])
- вывод успешен. Так же успешен и
void booblesort(char *mass[5])
. 2. Как правильно объявить temp что бы в него можно было записать элемент массива? 3. Ну и, собственно, как выполнить сортировку? На числах - всё понятно. Но строки - это ещё тёмный лес. Пожалуйста, не стесняйтесь поподробнее раскрыть Ваши ответы. Хочется не просто "содрать" готовое, а понять, где я был не прав и что нужно использовать и как оно всё работает. С уважением, ProgC.

Решение задачи: «Сортировка пузырьком»

textual
Листинг программы
j < size -i -1

Объяснение кода листинга программы

Код, который вы предоставили, является фрагментом кода для сортировки пузырьком на языке C. Вот список, объясняющий, что происходит в этом коде:

  1. Переменная i инициализируется значением 0. Эта переменная используется для отслеживания текущего индекса в массиве.
  2. Переменная j инициализируется значением size - i - 1. Это делается для того, чтобы начать сравнение и обмен элементов с конца массива, а не с начала.
  3. Затем происходит условие: если i < size - i - 1, то выполняется следующий блок кода, иначе программа продолжает работу с основной программы.
  4. Внутри блока кода происходит сравнение и обмен элементов. Для каждого элемента в массиве проверяется, больше ли он следующего элемента. Если это так, то значения элементов меняются местами.
  5. После выполнения этого блока кода, переменная i увеличивается на 1, чтобы перейти к следующему элементу для проверки.
  6. Этот процесс повторяется до тех пор, пока i меньше size - i - 1, что означает, что массив еще не отсортирован. В итоге, этот код реализует сортировку пузырьком, где элементы сравниваются и меняются местами до тех пор, пока массив не будет полностью отсортирован.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.385 из 5