кодесурса
«C

Упражнения C: Сортировка n чисел в диапазоне от 0 до n ^ 2

script1adsense2code
script1adsense3code

C Array: Упражнение 79 с решением

Напишите программу на C для сортировки n чисел в диапазоне от 0 до n ^ 2.

Иллюстрированная презентация:

«C

Пример решения:

Код 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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code