Отсортировать первую половину массива по возрастанию, а вторую - по убыванию - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Массив из 20 целых чисел заполняется случайными числами от -100 до 100, отсортировать его первую половину по возрастанию, а вторую- по убыванию и вывести на экран. Помогите пожалуйста.

Решение задачи: «Отсортировать первую половину массива по возрастанию, а вторую - по убыванию»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 20
 
//сортировка вставками
void isort(int arr[], int first, int last, int (*cmp)(int,int)){
    int v, i, j;
    for(i = first + 1; i < last; ++i){
        v = arr[i];
        j = i;
        while((j > first) && (*cmp)(v, arr[j - 1])){
            arr[j] = arr[j - 1];
            --j;
        }
        arr[j] = v;
    }
}
 
static int cmp_asc(int a, int b)  { return (a < b); }
static int cmp_desc(int a, int b) { return (a > b); }
 
int main(void){
    int i, arr[N];
    srand((unsigned int)time(NULL));
 
    for(i = 0; i < N; ++i)
        arr[i] = -100 + rand() % 201;
 
    //сортируем по возрастанию
    isort(arr, 0, N / 2, &cmp_asc);
 
    //сортируем по убыванию
    isort(arr, N / 2, N, &cmp_desc);
 
    for(i = 0; i < N; ++i)
        printf("%d ", arr[i]);
    getchar();
    return 0;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с массивами и временем
  2. Определение размера массива N
  3. Функция isort для сортировки массива вставками
  4. Статические функции сравнения для сортировки по возрастанию и убыванию
  5. Инициализация массива случайными числами
  6. Сортировка первой половины массива по возрастанию
  7. Сортировка второй половины массива по убыванию
  8. Вывод отсортированного массива на экран
  9. Получение ввода от пользователя для завершения работы программы
  10. Возвращение 0 для успешного завершения программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5
Похожие ответы