Сортировка методом пузырька - 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; } } } }
Объяснение кода листинга программы
В этом коде реализована сортировка массива строк методом пузырька. Список действий:
- Входные данные: массив строк Data и его размер count.
- В каждой итерации внутреннего цикла, начиная с 1-го элемента, сравниваются пары соседних элементов.
- Если первый элемент больше второго, то они меняются местами, и устанавливается флаг Flag=1.
- Если элементы не равны, то поиск разницы в значениях продолжается.
- Если элементы равны, то поиск разницы прекращается, и они больше не сравниваются.
- Если Flag=1, то элементы меняются местами.
- После завершения внутреннего цикла, происходит проверка внешнего цикла.
- Если Flag=1, то элементы меняются местами.
- Циклы повторяются до тех пор, пока массив не будет отсортирован.
- Результат: отсортированный массив строк.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д