Advertisement
Gistrec

mpia Сультим 2 лаб

Nov 21st, 2017
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.91 KB | None | 0 0
  1. int main() {
  2.     setlocale(LC_ALL, "Russian");
  3.     // Считываем таблицу
  4.     read(t2);
  5.  
  6.     // Выводим тиблицу
  7.     for (int k = 0; k < t2.n; k++) {
  8.         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);
  9.     }
  10.     printf("\n");
  11.    
  12.     // Засекаем время
  13.     unsigned int start_time = clock();
  14.  
  15.     // Наша сортировка
  16.     //sort1();
  17.    
  18.     // std::qsort    определена в заголовочном файле <cstdlib>
  19.     // Сортирует в порядке возрастания заданный массив
  20.     // Входные данные:
  21.     // t2.el -  Указатель на массив для сортировки
  22.     // t2.n - Количество элементов в массиве
  23.     // sizeof(Zav_Pit) - Размер каждого элемента в массиве
  24.     //
  25.     // P.S. void* - указатель на void реализует динамическую типизацию
  26.     // т.е. нужен для того, чтобы передать в функцию указатель на любой тип
  27.     std::qsort(t2.el, t2.n, sizeof(Zav_Pit), [](const void* a, const void* b) {
  28.  
  29.         Zav_Pit arg1 = *static_cast<const Zav_Pit*>(a);
  30.         Zav_Pit arg2 = *static_cast<const Zav_Pit*>(b);
  31.  
  32.         if (arg1.price < arg2.price) return -1;
  33.         if (arg1.price > arg2.price) return 1;
  34.         return 0;
  35.     });
  36.  
  37.     // Считаем время выполнения сортировки
  38.     unsigned int end_time = clock();
  39.     unsigned int search_time = end_time - start_time;
  40.  
  41.     // Выводим таблицу
  42.     for (int k = 0; k < t2.n; k++) {
  43.         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);
  44.     }
  45.  
  46.     // Делим на 1000, или просто подставляем три нуля до числа :)
  47.     printf("\nTime: 0.000%d", search_time);
  48.  
  49.     system("pause");
  50.     return 1;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement