кодесурса
«C

Упражнения на С: алгоритм сортировки

script1adsense2code
script1adsense3code

Алгоритм поиска и сортировки при программировании на 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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code