Сортировка пузырьком - 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, что означает, что массив еще не отсортирован. В итоге, этот код реализует сортировку пузырьком, где элементы сравниваются и меняются местами до тех пор, пока массив не будет полностью отсортирован.