Сортировка вставкой - C (СИ)

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

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

Разработать программу,которая вводит целочисленную матрицу из n строк и m столбцов.Упорядочить каждую строку по возрастанию элементов.Вывести исходную матрицу и результат сортировки.сортировка вставкой

Решение задачи: «Сортировка вставкой»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main()
{
   size_t m, n;
   size_t i, j, k;
   int key;
   int** array;
 
   srand(time(NULL));
   printf("input m and n: ");
   scanf("%u%u", &m, &n);
 
   array = (int**) malloc(sizeof(int*) * n);
   for (i = 0; i < n; ++i)
   {
      array[i] = (int*) malloc(sizeof(int) * m);
 
      for (j = 0; j < m; ++j)
      {
         array[i][j] = rand() % 90 + 10;
         printf("%d ", array[i][j]);
      }
      printf("\n");
   }
   printf("\n");
 
   for (i = 0; i < n; ++i)
   {
      for (j = 1; j < m; ++j)
      {
         key = array[i][j];
         for (k = j; (k > 0) && (array[i][k - 1] > key); --k)
         {
            array[i][k] = array[i][k - 1];
         }
         array[i][k] = key;
      }
 
      for (j = 0; j < m; ++j)
      {
         printf("%d ", array[i][j]);
      }
      free(array[i]);
      printf("\n");
   }
   free(array);
 
   return EXIT_SUCCESS;
}

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

В этом коде:

  1. Объявлены переменные: m, n, i, j, k, key, array.
  2. Выделена память под массив указателей на int и заполнен его значениями.
  3. В цикле заполняются значениями массива.
  4. Выполняется сортировка вставкой для каждого подмассива.
  5. Выводится отсортированный массив.
  6. Освобождается память.
  7. Код заканчивается успехом.

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


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

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

6   голосов , оценка 4 из 5