Для сортировки повторяющихся строк на языке C мы можем использовать различные алгоритмы сортировки, такие как сортировка пузырьком, сортировка выбором или сортировка слиянием.
Один из наиболее простых и популярных алгоритмов сортировки в C - это сортировка пузырьком. Этот алгоритм сравнивает соседние элементы и меняет их местами, если они находятся в неправильном порядке. Повторяем эту операцию до тех пор, пока все элементы не будут отсортированы.
Вот пример кода, демонстрирующего сортировку повторяющихся строк на языке C с использованием сортировки пузырьком:
#include <stdio.h> #include <string.h> void bubbleSort(char arr[][100], int n) { int i, j; char temp[100]; for (i = 0; i < n - 1; i++) { for (j = 0; j < n - i - 1; j++) { if (strcmp(arr[j], arr[j + 1]) > 0) { strcpy(temp, arr[j]); strcpy(arr[j], arr[j + 1]); strcpy(arr[j + 1], temp); } } } } int main() { char strings[][100] = { "apple", "banana", "cat", "apple", "banana" }; int numStrings = sizeof(strings) / sizeof(strings[0]); bubbleSort(strings, numStrings); printf("Sorted strings:n"); for (int i = 0; i < numStrings; i++) { printf("%sn", strings[i]); } return 0; }
В этом примере мы объявляем массив строк strings
и инициализируем его несколькими повторяющимися значениями. Затем мы вычисляем количество строк в массиве с помощью операции sizeof
, чтобы передать его в функцию сортировки. Затем вызываем функцию bubbleSort
, которая сортирует строки в массиве.
Функция bubbleSort
принимает массив строк arr
и его размер n
. Она использует внешний и внутренний циклы для прохода по всем элементам массива. Внутренний цикл сравнивает соседние строки с помощью функции strcmp
и меняет их местами с помощью функции strcpy
, если они находятся в неправильном порядке.
В конце программы мы выводим отсортированные строки на консоль с помощью цикла for
.
Таким образом, приведенный выше код реализует сортировку повторяющихся строк на языке C с использованием сортировки пузырьком и позволяет получить отсортированный массив строк, где повторяющиеся строки будут идти друг за другом.