Сортировка вставками без использования индексирования - C (СИ)

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

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

Нужно отсортировать и вывести 2-х мерный масив 10х10 по убыванию не используя индексацию (через указатели). Поиском нашел кучу вариантов через индексацию, но как их переделать под указатели?

Решение задачи: «Сортировка вставками без использования индексирования»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define N 10
  5. #define M 10
  6. void mySort(int* );
  7. int main(void)
  8. {
  9.     int i, j, arr[N][M];
  10.     srand(time(NULL));
  11.     for(i = 0; i < N; i++, putchar('\n'))
  12.         for(j = 0; j < M; j++)
  13.             printf("%3d", arr[i][j] = rand() % 99);
  14.     putchar('\n');
  15.     mySort(arr[0]);
  16.     return 0;
  17. }
  18. void mySort(int* p)
  19. {
  20.     int *q, *m, *last = p + N * M, temp;
  21.     for(q = p + 1; q < last; q++){
  22.         for(m = q; m > p && *(m - 1) < *m; m--){
  23.             temp = *(m - 1);
  24.             *(m - 1) = *m;
  25.             *m = temp;
  26.         }
  27.     }
  28.     for(temp = 0; p < last; p++, temp++){
  29.         if(temp && !(temp % M))
  30.             putchar('\n');
  31.         printf("%3d", *p);
  32.     }
  33. }

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

  1. Включаем необходимые заголовочные файлы для работы с I/O, генерацией случайных чисел и временем
  2. Определяем массив размером NxM, где N=10, M=10
  3. Инициализируем элементы массива случайными числами от 0 до 99
  4. Выводим массив на экран
  5. Рекурсивно вызываем функцию сортировки mySort, передавая в нее указатель на первый элемент массива
  6. В функции mySort определяем указатели на текущий элемент, предыдущий элемент и последний элемент массива
  7. Используя два вложенных цикла, сортируем массив по возрастанию
  8. Выводим отсортированный массив на экран
  9. Возвращаем 0, что означает успешное выполнение программы

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы