Сортировка пузырьком - C (СИ) (77104)
Формулировка задачи:
Добрый день!
Пожалуйста, помогите с решением одной задачки.
Я начинающий программист, поэтому много чего не понимаю.
И так, надеюсь на Вашу поддержку.
Дан массив:
Задача - отсортировать элементы массива по алфавиту "Пузырьковым" способом.
Причем сделать это нужно с помощью вызова алгоритма функции BoobleSort.
Вот алгоритм:
Алгоритм, естественно, надо как-то видоизменить. Так же сказали пользоваться функцией strcmp(). Как с ней работать и что она делает я знаю.
Проблемы:
1. Нужно передать массив в функцию. Я видел три способа передать массив, но при попытке использования работает только два.
- так выглядит прототип функции.
Вызов - не работает. В теле функции стоит вывод первого элемента массива При попытке вывода - крах.
Если переделать прототип в - вывод успешен. Так же успешен и .
2. Как правильно объявить temp что бы в него можно было записать элемент массива?
3. Ну и, собственно, как выполнить сортировку? На числах - всё понятно. Но строки - это ещё тёмный лес.
Пожалуйста, не стесняйтесь поподробнее раскрыть Ваши ответы. Хочется не просто "содрать" готовое, а понять, где я был не прав и что нужно использовать и как оно всё работает.
С уважением, ProgC.
char *mass[] = {"John", "Mery", "Peter", "Ann", "Emma"};
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;}
void booblesort(char *mass)
booblesort(mass);
printf("%s", mass[0]);
void booblesort(char *mass[])
void booblesort(char *mass[5])
Решение задачи: «Сортировка пузырьком»
textual
Листинг программы
j < size -i -1
Объяснение кода листинга программы
Код, который вы предоставили, является фрагментом кода для сортировки пузырьком на языке C. Вот список, объясняющий, что происходит в этом коде:
- Переменная
i
инициализируется значением 0. Эта переменная используется для отслеживания текущего индекса в массиве. - Переменная
j
инициализируется значениемsize - i - 1
. Это делается для того, чтобы начать сравнение и обмен элементов с конца массива, а не с начала. - Затем происходит условие: если
i < size - i - 1
, то выполняется следующий блок кода, иначе программа продолжает работу с основной программы. - Внутри блока кода происходит сравнение и обмен элементов. Для каждого элемента в массиве проверяется, больше ли он следующего элемента. Если это так, то значения элементов меняются местами.
- После выполнения этого блока кода, переменная
i
увеличивается на 1, чтобы перейти к следующему элементу для проверки. - Этот процесс повторяется до тех пор, пока
i
меньшеsize - i - 1
, что означает, что массив еще не отсортирован. В итоге, этот код реализует сортировку пузырьком, где элементы сравниваются и меняются местами до тех пор, пока массив не будет полностью отсортирован.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д