Упражнения C: Сортировка n чисел в диапазоне от 0 до n ^ 2
C Array: Упражнение 79 с решением
Напишите программу на C для сортировки n чисел в диапазоне от 0 до n ^ 2.
Иллюстрированная презентация:
Пример решения:
Код C:
#include <stdio.h>
int countSort(int arr1[], int n, int exp)
{
int output[n];
int i, ctr[n] ;
for (int i=0; i < n; i++)
ctr[i] = 0;
for (i = 0; i < n; i++)
ctr[ (arr1[i]/exp)%n ]++;
for (i = 1; i < n; i++)
ctr[i] += ctr[i - 1];
for (i = n - 1; i >= 0; i--)
{
output[ctr[ (arr1[i]/exp)%n] - 1] = arr1[i];
ctr[(arr1[i]/exp)%n]--;
}
for (i = 0; i < n; i++)
arr1[i] = output[i];
}
void sortArray(int arr1[], int n)
{
countSort(arr1, n, 1);
countSort(arr1, n, n);
}
void printBothArr(int arr1[], int n)
{
for (int i = 0; i < n; i++)
printf("%d ",arr1[i]);
}
int main()
{
int arr1[] = {37, 62, 52, 7, 48, 3, 15, 61};
int n = sizeof(arr1)/sizeof(arr1[0]);
printf("The given array is: ");
printBothArr(arr1, n);
sortArray(arr1, n);
printf("\nSorted array is: ");
printBothArr(arr1, n);
return 0;
}
Пример вывода:
Данный массив: 37 62 52 7 48 3 15 61 Сортированный массив: 3 7 15 37 48 52 61 62
Блок - схема:
Редактор кода программирования C:
Улучшите этот пример решения и опубликуйте свой код через Disqus.
Previous: написать программу на C, чтобы найти четыре элемента массива, сумма которых равна заданному числу.
Далее: Напишите программу на C, чтобы подсчитать все разные пары для определенной разницы.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code