Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int main() {
- setlocale(LC_ALL, "Russian");
- // Считываем таблицу
- read(t2);
- // Выводим тиблицу
- for (int k = 0; k < t2.n; k++) {
- printf("%s %s %s %s %d\n", t2.el[k].name, t2.el[k].address, t2.el[k].type_zav, t2.el[k].type_kitch, t2.el[k].price);
- }
- printf("\n");
- // Засекаем время
- unsigned int start_time = clock();
- // Наша сортировка
- //sort1();
- // std::qsort определена в заголовочном файле <cstdlib>
- // Сортирует в порядке возрастания заданный массив
- // Входные данные:
- // t2.el - Указатель на массив для сортировки
- // t2.n - Количество элементов в массиве
- // sizeof(Zav_Pit) - Размер каждого элемента в массиве
- //
- // P.S. void* - указатель на void реализует динамическую типизацию
- // т.е. нужен для того, чтобы передать в функцию указатель на любой тип
- std::qsort(t2.el, t2.n, sizeof(Zav_Pit), [](const void* a, const void* b) {
- Zav_Pit arg1 = *static_cast<const Zav_Pit*>(a);
- Zav_Pit arg2 = *static_cast<const Zav_Pit*>(b);
- if (arg1.price < arg2.price) return -1;
- if (arg1.price > arg2.price) return 1;
- return 0;
- });
- // Считаем время выполнения сортировки
- unsigned int end_time = clock();
- unsigned int search_time = end_time - start_time;
- // Выводим таблицу
- for (int k = 0; k < t2.n; k++) {
- printf("%s %s %s %s %d\n", t2.el[k].name, t2.el[k].address, t2.el[k].type_zav, t2.el[k].type_kitch, t2.el[k].price);
- }
- // Делим на 1000, или просто подставляем три нуля до числа :)
- printf("\nTime: 0.000%d", search_time);
- system("pause");
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement