Программирование на C / C++ / Лабораторные работы6 / Лаба-4
.doc
Лабораторная работа №4
по технологическому программированию
«Алгоритмы сортировки»
Выполнил: Егоров Михаил
Группа: БИ-1-05
Цель работы: изучение различных алгоритмов сортировки и сравнение их характеристик.
1.Задание.
Написать программу на языке Си, которая случайным образом задает массив типа int из 20 элементов в диапазоне от –1000 до 1000, выполняет сортировку элементов по возрастанию двумя методами и выводит на экран отсортированные массивы.
2.Методы решения.
1.Метод выбора.
2.Метод пузырька.
3.Описание переменных.
Stat[] – исходный массив элементов
V[] – массив, отсортированный методом выбора.
P[] – массив, отсортированный метод пузырька.
i, j – счетчики элементов.
xmin – значение наименьшего из элементов.
kmin – текущая позиция xmin в массиве Stat[].
4.Блок-схема.
5.Исходный текст программы.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
randomize();
clrscr();
int STAT[20],V[20],P[20];
int i,j,xmin,kmin;
//zadanie massiva
for (i=0; i<=19;i+=1)
{
STAT[i]=random(2001)-1000;
P[i]=V[i]=STAT[i];
}
for (i=0;i<=18; i+=1)
{
xmin=V[i];
kmin=i;
for (j=i+1;j<=19;j+=1)
{
if (V[j]<xmin)
{
xmin=V[j];
kmin=j;
}
}
V[kmin]=V[i];
V[i]=xmin;
}
for (i=18;i>=0;i--)
{
for (j=0; j<=i;j++)
{
if (P[j]>P[j+1])
{
xmin=P[j];
P[j]=P[j+1];
P[j+1]=xmin;
}
}
}
for(i=0;i<=19;i++)
printf("%d\t%d\t%d\n",STAT[i],V[i],P[i]);
}
6.Результат.
STAT[20] |
V[20] |
P[20] |
-666 |
-666 |
-666 |
145 |
-462 |
-462 |
198 |
-438 |
-438 |
700 |
-414 |
-414 |
858 |
-321 |
-321 |
-290 |
-290 |
-290 |
-321 |
-82 |
-82 |
-60 |
-60 |
-60 |
854 |
145 |
145 |
635 |
198 |
198 |
670 |
375 |
375 |
879 |
465 |
465 |
-414 |
635 |
635 |
719 |
670 |
670 |
-462 |
700 |
700 |
465 |
719 |
719 |
-438 |
854 |
854 |
914 |
858 |
858 |
375 |
879 |
879 |
-82 |
914 |
914 |