Анализ методов сортировки одномерного массива
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. Шолмов Л.И. Руководство по турбо Си. М.: Наука, 1994. – 94-98с.
2. Уинер Р. Язык Турбо Си : Пер. с англ. -М.:: Мир, 1991. – 384 с.
3. Керниган Б.В, Ричи Д.М. Си для профессионалов. М.: Энергия, 1996.– 213 с.
4. Грейд Дж. Математическое программирование. М.: Наука, 1987. – 241 с.
5. Либерман М. Алгоритмы сортировки массивов.
М.: Наука, 1997. – 43-81с.
Приложение 1
ЛИСТИНГ ПРОГРАММЫ
// листинг программы сортировки массивов разработанная Андрусевичем Б.И.
#include <stdio.h>
#include <dos.h>
#include <graphics.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <time.h>
//-------------< Создание оболочки >-------------
void windows(int w)
{
int n;
_setcursortype(0);
window(1, 1, 80, 25); // Выделение окна
textbackground(BLACK); // Цвет фона
clrscr(); // Очистка экрана
window(1, 25, 80, 25); // Выделение окна
textbackground(GREEN); // Цвет фона
clrscr(); // Очистка экрана
window(1, 25, 80, 25);
textcolor(BLACK); // Цвет текста
if (w == 1) // Проверка на выбор окна
{
n = 21;
cprintf(" Помощь Тест Выход");
window(2, 25, 4, 25);
textcolor(RED); // Управляющие клавиши
cprintf("F1"); // основного окна
window(13, 25, 15, 25);
cprintf("F2");
window(22, 25, 25, 25);
cprintf("F10");
textbackground(BLUE);
}
else
{
n =22;
cprintf(" Выход из помощи ");
window(3, 25, 6, 25);
textcolor(RED); // Управляющие клавиши
cprintf("Esc"); // окна помощи
textbackground(CYAN);
}
window(1, 1, 80, 25); // Прорисовка рамки
textcolor(WHITE);
cprintf("+------------------------------------ Тест ------------------------------------+");
for (int k = 0; k < n; k++)
cprintf("¦ ¦");
cprintf("+------------------------------------------------------------------------------+");
if (w == 1)
{
window(2, 2, 79, 2);
puts(" Эта программа демонстрирует сортировку массива двумя методами:");
window(2, 3, 79, 3);
puts(" быстрым методом и методом слияния. После чего определяется время сор-");
window(2, 4, 79, 4);
puts(" тировки массива каждым методом и результат выводится в виде гисто-");
window(2, 5, 79, 5);
puts(" граммы.");
window(2, 6, 79, 6);
window(20, 10, 60, 15);
textcolor(WHITE);
textbackground(LIGHTGRAY);
cprintf("+------------------------------------------------------------------+");
cprintf("¦ НЕОБХОДИМЫЕ ФАЙЛЫ ПРИСУТСТВУЮТ ¦");
cprintf("¦ (для тестировния нажмите F2) ¦");
cprintf("+------------------------------------------------------------------+");
closegraph();
}
}
//------------< Окно сообщения ошибок>-----------
void Error()
{
window(20, 10, 60, 15);
textcolor(WHITE);
textbackground(LIGHTGRAY);
cprintf("+----------------- Ошибка ----------------+");
cprintf("¦ ¦ ");
cprintf("¦ ¦");
cprintf("¦ ¦");
cprintf("+---------------------------------------------+");
}
//-------------< Функция помощи >----------------
help()
{
int n = 1;
FILE *hl; // Указатели на файл
char string[78];
if ((hl = fopen("test.hlp", "r")) != NULL) // Проверка на открытие файла
{
windows(0);
window(2, 2, 78, 23);
textcolor(BLACK);
while (fgets(string, 78, hl) != NULL && n < 23)
{
gotoxy(1, n++); // Построчный вывод файла
cputs(string); // помощи
}
window(36, 1, 44, 1);
printf(" Помощь "); // Вывод заголовка помощи
while (27 != getch());
}
else{
Error();
window(29, 12, 52, 12);
textcolor(BLACK);
cprintf("Файл TEST.HLP не найден");
getch();
windows(1);
}
fclose(hl);
windows(1);
return 0;
}
//--------< Функция построения гистограмм>-------
grafix(double simvol[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 < simvol[y]) // числа
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] по возрастанию*/
Другие рефераты на тему «Программирование, компьютеры и кибернетика»:
Поиск рефератов
Последние рефераты раздела
- Основные этапы объектно-ориентированного проектирования
- Основные структуры языка Java
- Основные принципы разработки графического пользовательского интерфейса
- Основы дискретной математики
- Программное обеспечение системы принятия решений адаптивного робота
- Программное обеспечение
- Проблемы сохранности информации в процессе предпринимательской деятельности