Подскажите как сделать задание, сортировка пузырьком - C (СИ)
Формулировка задачи:
Дана таблица прямого доступа, есть структура Таблицы, которая включает в себя 20 строковых переменных длинной по 100 каждая. Так же дан вектор из ключей (следственно их тоже 20), каждый ключ размера 5 (?!)байт, строковый(?!) тип.
Как мне отсортировать такое? В смысле, вот с обычными размерами типа int или обычный чар - я справлюсь, а вот размера 5 байт - ничего в голову не лезет. Я даже не могу представить как запись делать, не то что сравнение или обмен местами двух ключей.
Помогите, приведите примером кусок кода, где организовывается сравнение и запись таких нестандартных ключей! Благодарю заранее!
Решение задачи: «Подскажите как сделать задание, сортировка пузырьком»
textual
Листинг программы
void memswap(char * a, char * b, size_t cnt) { char tmp; while ( cnt-- ) { tmp = *a; *a = *b; *b = tmp; ++a; ++b; } }
Объяснение кода листинга программы
- В данном коде представлен функционал для обмена элементов в памяти, он будет использоваться в сортировке пузырьком.
- Функция
memswap
принимает три аргумента: указатели на первые два элемента, которые нужно поменять местами (a
иb
), и количество элементов, которые нужно поменять местами (cnt
). - Внутри функции создается временная переменная
tmp
, которая будет использоваться для хранения значений, которые нужно временно сохранить. - Затем в цикле
while
происходит обмен элементов до тех пор, пока не будут перебраны все элементы. - В каждой итерации цикла значения
tmp
и первого элемента (*a
) меняются местами, затем значенияtmp
и второго элемента (*b
) меняются местами. - После каждой итерации указатели
a
иb
увеличиваются на 1, чтобы перейти к следующим элементам. - В конце функции указатель
a
иb
будут указывать на элементы, которые были переставлены местами. - Для сортировки пузырьком нужно вызывать функцию
memswap
для каждой пары соседних элементов, пока все элементы не будут отсортированы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д