Skip to content

pavbox/libsort

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Алгоритмы и структуры данных: Библиотека для работы с сортировками массивов libsort.

Status

OSX: Build Status

Функции:

void generateArray(int* array, int size);
void copyArray(int* original, int* clone);
void outputArray(int* array);

void insertion(int* array, int size);
void insertionBisection(int* array, int size);
void selection(int* array, int size);
void quick(int* array, int first, int last);
void quickIterable(int* arr, int size);

void bubble(int* array, int size);
void shaker(int* array, int size);
void shells(int* array, unsigned int size);

API и способ вызова.

Для примера решим задачу: измерить время выполнения сортировки Хоара (рекурсивной).

  • Зададим переменные для хранения времени, данных, константы для генерации массива.
int times, quickTime;
const int LENGTH_ARRAY = 20000;
int* quickArray = new int[LENGTH_ARRAY];
  • Генерируем массив заданной длины, состоящий из случайных элементов.
Libsort::generateArray(quickArray, LENGTH_ARRAY);
  • Получаем системы время до начала сортировки, сортируем и считаем разницу между текущим и начальным временем системы.
times = clock();
// Сортируем quickArray от нулевого элемента до последнего.
// Интервал нужно указывать, так как функция рекурсивная.
Libsort::quick(quickArray, 0, LENGTH_ARRAY - 1);
quickTime = clock() - times;
  • Настроим фиксированный удобный вывод для чисел и преобразуем тики процессора в секунды.
cout.setf(ios::fixed); // fixed output
cout.precision(4);     // accc
cout << std::endl << "quick time: " << ((float) quickTime) / CLOCKS_PER_SEC << 's' << endl;

PS: test.cpp с реализацией всех сортировок

About

Library contains basic sorts algorithms. Compiled with g++ as shared library (for mac/linux).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published