Упражнения на С: алгоритм сортировки
Алгоритм поиска и сортировки при программировании на C: упражнение 9 с решением
Напишите программу на C для подсчета сортировки.
Замечания:
Согласно Википедии "В компьютерных науках сортировка подсчета - это алгоритм сортировки коллекции объектов по ключам, которые являются маленькими целыми числами; то есть это алгоритм целочисленной сортировки. Он работает путем подсчета количества объектов, у которых есть каждый отдельный ключ значение и использование арифметики по этим подсчетам для определения позиций каждого значения ключа в выходной последовательности. Время его выполнения линейно по количеству элементов и разности между максимальным и минимальным значениями ключа, поэтому оно подходит только для непосредственного использования в ситуациях, когда изменение в ключах не намного больше, чем количество элементов. Однако оно часто используется в качестве подпрограммы в другом алгоритме сортировки, основанном на сортировке, который может обрабатывать большие ключи более эффективно ».
Пример решения:
Образец кода C:
#include <stdio.h>
/* Counting sort function */
int counting_sort(int a[], int k, int n)
{
int i, j;
int b[15], c[100];
for (i = 0; i <= k; i++)
c[i] = 0;
for (j = 1; j <= n; j++)
c[a[j]] = c[a[j]] + 1;
for (i = 1; i <= k; i++)
c[i] = c[i] + c[i-1];
for (j = n; j >= 1; j--)
{
b[c[a[j]]] = a[j];
c[a[j]] = c[a[j]] - 1;
}
printf("The Sorted array is : ");
for (i = 1; i <= n; i++)
printf("%d,", b[i]);
}
int main()
{
int n, k = 0, a[15], i;
printf("Input number of elements: ");
scanf("%d", &n);
printf("Input the array elements one by one: \n");
for (i = 1; i <= n; i++)
{
scanf("%d", &a[i]);
if (a[i] > k) {
k = a[i];
}
}
counting_sort(a, k, n);
printf("\n");
return 0;
}
Пример ввода:
3 12 15 56
Пример вывода:
Введите количество элементов: введите элементы массива один за другим: Сортированный массив: 12,15,56,
Блок - схема:
Редактор кода программирования C:
Улучшите этот пример решения и опубликуйте свой код через Disqus.
Предыдущий: Напишите программу на C для сортировки списка элементов, используя алгоритм сортировки по основанию.
Далее: Написать программу на C для отображения отсортированного списка с помощью Gnome Sort.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования