Смекни!
smekni.com

Сравнительный анализ алгоритмов сортировки методом простых вставок и методом пузырька (стр. 5 из 5)

Список литературы

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 << "&bsol;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 << "&bsol;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; }