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

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

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

Здравствуйте, напишите, пожалуйста, такую программу. Напишите программу, сортирующую массив вещественных чисел по возрастанию методом пузырька. (С ЭТИМ НЕТ ПРОБЛЕМ). Но самое сложное здесь это её модификация. Модификация программы:модифицируйте программу так, чтобы она сортировала в алфавитном порядке строки текстового файла. Вы можете рассчитывать на то, что число строк в файле не превышает 100 и длина каждой строки не более 80 символов. Во время сортировки не переставляйте собственно строки - это увеличивает время сортировки: используйте указатели. (ВОТ здесь ничего не получается)

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

textual
Листинг программы
void sort(char **Data, int count)
{
 char **i;
 char **j;
 char *temp;
 char *pi;
 char *pj;
 int Flag;
 for (i=Data; i<Data+Count-1; ++i)
 {
  for (j=i+1; j<=Data+Count-1; ++j)
  {
   for (pi=*i, pj=*j, Flag=0; (*pi!='\0')||(*pj!='\0'), ++pi)
   {
    if ((*pi)>(*pj))
    {
     Flag=1;
    }
    if ((*pi)!=(*pj))
    {
     break;
    }
   }
   if (Flag!=0)
   {
    temp=*i;
    *i=*j;
    *j=temp;
   }
  }
 }
}

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

В этом коде реализована сортировка массива строк методом пузырька. Список действий:

  1. Входные данные: массив строк Data и его размер count.
  2. В каждой итерации внутреннего цикла, начиная с 1-го элемента, сравниваются пары соседних элементов.
  3. Если первый элемент больше второго, то они меняются местами, и устанавливается флаг Flag=1.
  4. Если элементы не равны, то поиск разницы в значениях продолжается.
  5. Если элементы равны, то поиск разницы прекращается, и они больше не сравниваются.
  6. Если Flag=1, то элементы меняются местами.
  7. После завершения внутреннего цикла, происходит проверка внешнего цикла.
  8. Если Flag=1, то элементы меняются местами.
  9. Циклы повторяются до тех пор, пока массив не будет отсортирован.
  10. Результат: отсортированный массив строк.

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


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

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

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