Подскажите как сделать задание, сортировка пузырьком - 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;
    }
}

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

  1. В данном коде представлен функционал для обмена элементов в памяти, он будет использоваться в сортировке пузырьком.
  2. Функция memswap принимает три аргумента: указатели на первые два элемента, которые нужно поменять местами (a и b), и количество элементов, которые нужно поменять местами (cnt).
  3. Внутри функции создается временная переменная tmp, которая будет использоваться для хранения значений, которые нужно временно сохранить.
  4. Затем в цикле while происходит обмен элементов до тех пор, пока не будут перебраны все элементы.
  5. В каждой итерации цикла значения tmp и первого элемента (*a) меняются местами, затем значения tmp и второго элемента (*b) меняются местами.
  6. После каждой итерации указатели a и b увеличиваются на 1, чтобы перейти к следующим элементам.
  7. В конце функции указатель a и b будут указывать на элементы, которые были переставлены местами.
  8. Для сортировки пузырьком нужно вызывать функцию memswap для каждой пары соседних элементов, пока все элементы не будут отсортированы.

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


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

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

11   голосов , оценка 4.182 из 5
Похожие ответы