1. Лекции по предмету "Программирование языков высшего уровня"
2. "Программирование и основы алгоритмизации" - В.Г. Давыдов - изд. "Высшая школа", 2005.
3. "Основы алгоритмизации и программирования" - О.Л. Голицына, И.И. Попов - изд. "ФОРУМ-ИНФРА-М", 2006.
4. "Программирование на языке высокого уровня" - Т.А. Павловская - изд. "Питер", 2004.
(листинг рабочего кода разработанного приложения)
#pragma argsused
#include <iostream. h>
# include <time. h>
void insert (int *a, int n) // ФУНКЦИЯ ВСТАВОК
{
int i, j, t; // объявление переменных
for (i=1; i<n; i++)
{
t=a [i] ; // запоминается элемент для вставки
for (j=i-1; j>=0 && t<a [j] ; j--) // ищем место для вставки
a [j+1] =a [j] ; // сдвиг на одну позицию
a [j+1] =t;
}
}
void buble (int *a, int n) // функция пузырька
{
int i,j,t; // объявление переменных
for (i = 0; i <= n-1; i++)
{
for (j = 0; j <= n-2-i; j++)
{
if (a [j] >a [j+1]) // сравниваем пару соседних элементов
{
t = a [j] ; // и меняем их местами если это требуется
a [j] = a [j+1] ;
a [j+1] = t;
}
}
}
}
int main (int argc, char* argv [])
{
char b;
int n;
typedef long clock_t; // тип данных времени
clock_t t; // t - время выполнения программы
char str1 [100] = "Введите количество элементов для сортировки: ";
char str2 [100] ;
char str3 [100] ;
CharToOem (str1, buf);
cout<<buf<<endl;
cin>>n;
int* a=new int; // создание, указание кол-ва элементов
randomize (); // и заполнение массива
for (int i=0; i<=n; i++)
a [i] =random (50) - 30;
strcpy (str1,"Первичный массив: ");
CharToOem (str1, buf);
cout<<buf<<endl;
for (int i=0; i<n; i++)
{
cout<<" a ["<<i<<"] ="<<a [i] <<' ';
if (! ( (i+1)%5)) cout << "\n"; // массив выводится по 5 значений в строке
};
cout<<endl;
strcpy (str1,"Выберите тип сортировки: ");
strcpy (str2,"1. Сортировка методом простых вставок");
strcpy (str3,"2. Сортировка методом пузырька ");
CharToOem (str1, buf);
CharToOem (str2, buf1);
CharToOem (str3, buf2);
cout<<buf<<endl
<<buf1<<endl
<<buf2<<endl;
cin>>b;
strcpy (str1,"Отсортированные элементы: ");
CharToOem (str1, buf);
cout<<buf<<endl;
if (b='1')
{
insert (a,n); // вызов функции сортировки
}
if (b='2')
{
buble (a,n); // вызов функции
}
for (int i=0; i<n; i++)
{
cout<<" a ["<<i<<"] ="<<a [i] <<' ';
if (! ( (i+1)%5)) cout << "\n";
}
cout<<endl; // подсчёт времени выполнения программы
strcpy (str1,"Время сортировки в мс: ");
CharToOem (str1, buf);
cout<<buf<<endl;
t= (clock () /CLOCKS_PER_SEC) * 60; // функция clock () возвращает время исп программы
cout<<t; // как значение типа clock_t объявленного ранее это // значение можно перевести в секунды
// поделив на определенную в библиотеке time. h константу CLOCKS_PER_SEC
getchar ();
getchar ();
return 0; }