l [2])
{
double CopySimvol [2];// Масив кількості символів
long float max = 0;
int gdriver = DETECT, gmode, errorcode;
int midx = 50;// Обявление змінних
int midy = 410;// із заданою початковою
int i, s;// Значеннями
int siz = 100;
int otst = 10;
int rovn = 45;
char chis [2];
char buf [10];
initgraph (& gdriver, & Gmode, "");
errorcode = Graphresult ();// Запис код помилки
if (Errorcode! = GrOk)// Перевірка на помилку
{
Error ();// Виклик функції вікна
window (26, 12, 54, 12);
textcolor (BLACK);
cprintf ("Драйвер EGAVGA.BGI не знайдено ");
getch ();
windows (1);
return 0;
}
for (int y = 0; y <2; y + +)// Опріделеніе максимального
if (Max
max = Simvol [y];
for (int b = 0; b <2; b + +)// Опріделеніе висоти стовпців
CopySimvol [b] = Simvol [b] * 200/max;
setfillstyle (CLOSE_DOT_FILL, 9);
for (int n = 0; n <2; n + +)// Побудова стовпців і ліній
{
setcolor (BLUE);
bar3d (midx + Otst + siz * n, midy - CopySimvol [n], midx + siz * (n +1), midy, 15, 1);
setcolor (BROWN);
line (midx + Rovn + siz * n, midy + otst, midx + rovn + siz * n, midy + otst * 2);
sprintf (chis, "% D", n + 1);
setcolor (GREEN);
outtextxy ((midx + Rovn + siz * n) - 2, midy + otst * 2, chis);
setcolor (CYAN);
sprintf (buf, "% Lf", simvol [n]);
outtextxy ((midx + Rovn + siz * n) - 15, midy - CopySimvol [n] - rovn, buf);
}
setcolor (BROWN);
line (midx, 100, midx, midy + otst);// Побудова осі Y
line (midx, midy + otst, 280, midy + otst);// Побудова осі X
line (midx - Otst, midy - 200, midx, midy - 200);// Побудова
line (midx - Otst, midy - 100, midx, midy - 100);// лінії
settextstyle (DEFAULT_FONT, HORIZ_DIR, 1);
setcolor (GREEN);
outtextxy (535, 460, "ESC");
outtextxy (10, 205, "100");
outtextxy (10, 305, "50");
outtextxy (350, 235, "1. Сортірвка масиву швидких ");
outtextxy (350, 250, "методом");
outtextxy (350, 280, "2. Сортірвка масиву методом ");
outtextxy (350, 295, "злиття");
setcolor (LIGHTBLUE);
outtextxy (300, 423, "метод");
outtextxy (570, 460, "Вихід");
settextstyle (DEFAULT_FONT, HORIZ_DIR, 2);
outtextxy (220, 30, "Гістограма");
settextstyle (DEFAULT_FONT, VERT_DIR, 1);
outtextxy (48, 160, "час");
while (27! = Getch ());// Перевірка на символ ESC
closegraph ();
windows (1);
return 0;
}
/* Qsort: сортує v [left] ... v [right] за зростанням */
void qqsort (int v [], int left, int right)
{
int i, last;
delay (1);
void swap ( int v [], int i, int j);
if (left> = right)/* Нічого не робиться якщо */
return;/* В масиві менше двох ел-тів */
swap (v, left, (left + right)/2);/* Який ділив ел-нт переноситься в v [0] */
last = left;
for (i = left +1; i <= right; i + +)/* Розподіл на частини */
if (v [i]
swap (v, left, last);/* Перезапомінается який ділив елемент */
qqsort (v, left, last-1);
qqsort (v, last +1, right);
}
void swap ( int v [], int i, int j)
{
long int temp;
temp = v [i];
v [i] = v [j];
v [j] = temp;
}
/* SRECMG - Рекурсивні СОРТИРОВКА злиття */
void srecmg (a, n)
int a [], n;
{
void merge ( int *, int, int);
int i;
delay (1);
if (n> 1)...