Физико-математический лицей №30
Программирование
Примеры программ на Си
 

11. Сортировка вставкой со вспомогательным массивом.

< Предыдущая ^ Назад к списку задач Следующая >
/* FILENAME : task_1_11.c */
/* Eugene V. Ogurtsov */
/* Last update : 26.05.2000 */
/* Сортировка вставкой со вспомогательным массивом. */
/* Написать программу, которая заполняет массив из 100
 * целых чисел случайными числами и упорядочивает его
 * сортировкой вставкой со вспомогательным массивом.
 * Исходный и упорядоченный массивы выводятся на экран. */

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

/* Исходный и вспомогательный массивы */
int Mas[100], Mas2[100];

/* Основная функция */
void main( void )
{
  int dest, src, min, num;

  randomize();
  printf("Исходный массив:\n");
  for (src = 0; src < 100; src ++)
    printf("%3i ", Mas[src] = random(1000));

  /* Повторяем, пока не заполним второй массив */
  for (dest = 0; dest < 100; dest ++)
  {
    min = 32767;
    num = 0;
    /* Ищем минимум из всех элементов первого массива */
    for (src = 0; src < 100; src ++)
      if (Mas[src] < min)
      {
        min = Mas[src];
        num = src;
      }
    /* Записываем найденный минимум во второй массив */
    Mas2[dest] = min;
    /* В первом массиве на место минимума записываем 32767 */
    Mas[num] = 32767;
  }

  printf("\nОтсортированный массив:\n");
  for (dest = 0; dest < 100; dest ++)
    printf("%3i ", Mas2[dest]);
  printf("\n");
} /* End of 'main' function */

/* End of 'task_1_11.c' file */
Файл в кодировке MS-DOS
27 ноября 2003 года   Огурцов Е.В.