Рубрики

C Программа для подсчета сортировки

Подсчет сортировки — это метод сортировки, основанный на ключах между определенным диапазоном. Он работает путем подсчета количества объектов, имеющих различные ключевые значения (вид хеширования). Затем делаем некоторую арифметику, чтобы вычислить положение каждого объекта в выходной последовательности.

// C Программа для подсчета сортировки
#include <stdio.h>
#include <string.h>
#define RANGE 255

  
// Основная функция, которая сортирует заданную строку arr [] в
// алфавитный порядок

void countSort(char arr[])

{

    // Выходной массив символов, который будет отсортирован

    char output[strlen(arr)];

  

    // Создание массива count для хранения счетчика inidividul

    // символы и инициализируем массив count как 0

    int count[RANGE + 1], i;

    memset(count, 0, sizeof(count));

  

    // Сохраняем количество каждого символа

    for(i = 0; arr[i]; ++i)

        ++count[arr[i]];

  

    // Изменить count [i] так, чтобы count [i] теперь содержал фактический

    // положение этого символа в выходном массиве

    for (i = 1; i <= RANGE; ++i)

        count[i] += count[i-1];

  

    // Создаем массив выходных символов

    for (i = 0; arr[i]; ++i)

    {

        output[count[arr[i]]-1] = arr[i];

        --count[arr[i]];

    }

  

    // Копируем выходной массив в arr, так что теперь arr

    // содержит отсортированные символы

    for (i = 0; arr[i]; ++i)

        arr[i] = output[i];

}

  
// Программа драйвера для проверки вышеуказанной функции

int main()

{

    char arr[] = "geeksforgeeks";// "applepp";

  

    countSort(arr);

  

    printf("Sorted character array is %sn", arr);

    return 0;

}

Выход:

Sorted character array is eeeefggkkorssn

Пожалуйста, обратитесь к полной статье на счет сортировки для более подробной информации!

Рекомендуемые посты:

C Программа для подсчета сортировки

0.00 (0%) 0 votes