@santos995
Студент УГАТУ

Как решить задачу про сортировку подсчетом массива строк?

Помогите пожалуйста разобраться с условием задачи и ее реализацией.
Написать программу, упорядочивающую массив строк в алфавитном порядке методом сортировки подсчетом. Использовать указатели на строки.
Есть немного кода, найденного на просторах интернета, но он толком не работает, ошибок не выдает, но выходит окошко windows, требующее отладить или закрыть программу.
P. S. Пишу на C, т.е string использовать нельзя?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    char a;
    char a2;
    int i, j, k;
    char *mas, *mas2;
    int *key;
    *mas=a;
    *mas2=a2;
    *key=k;
    int size=10;
    i=0;

    while (*(mas+i)!='\n')
    {
        gets(*(mas+i));
        *(key+i)=0;
        i++;
    }
    for (i=size-1;i>0;i--)
        for (j=i-1;j>=0;j--)
            if (strcmp(*(mas+i),*(mas+j))<0) key[j]++;
            else key[i]++;
    for (j=0;j<size;j++)
        mas2[key[j]]=mas[j];
    return 0;
}
  • Вопрос задан
  • 3911 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Строки, в общем случае, нет смысла сортировать простым подсчетом. Такая сортировка эффективна только для целых чисел в ограниченном диапазоне.
Вам, скорее всего, нужен квадратичный алгоритм сортировки подсчетом.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы