int main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
clock_t fTimeStart, fTimeStop;
// добавление элементов в стек
Plan c1 = { "Бананы", 250, 50 };
push(c1);
Plan c2 = { "Йогурт", 180, 60 };
push(c2);
Plan c3 = { "Хлопья", 100, 30 };
push(c3);
Plan c4 = { "Хлебцы", 60, 15 };
push(c4);
int n = top + 1; // get the size of the stack
Plan plans[MAX_SIZE];
int i = 0;
printf_s("Изначальный массив:\n");
int current_top = top; // save the current top of the stack
for (int i = 0; i < n; i++) {
plans[i] = stack[current_top];
current_top--;
}
// print out the contents of the array
for (int i = 0; i < n; i++) {
printf_s("Name: %-10s gramm: %-10d kkal: %-10d'\n'", stack[i].name.c_str(), stack[i].gramm, stack[i].kkal);
}
printf_s("\n");
int pam = sizeof(plans);
double duration = 0;
int a = 0;
do {
printf("Введите операцию:\n");
printf_s("0: Отсортировать массив пузырьком\n");
printf_s("1: Отсортировать массив слиянием\n");
scanf_s("%d", &a);
switch (a)
{
case 0:
printf("Отсортированный пузырьков массив:\n");
fTimeStart = clock();
BubbleSort(stack, n);
for (i = 0; i < n; i++)
{
printf_s("Name: %-10s gramm: %-10d kkal: %-10d'\n'", stack[i].name.c_str(), stack[i].gramm, stack[i].kkal);
}
fTimeStop = clock();
duration = (double)(fTimeStop - fTimeStart) / CLOCKS_PER_SEC;
printf("Time: %f\n", duration);
printf("Memory: %f\n", pam);
break;
case 1:
printf("Отсортированный слиянием массив:\n");
fTimeStart = clock();
merge(stack, n);
for (i = 0; i < n; i++)
{
printf_s("Name: %-10s gramm: %-10d kkal: %-10d'\n'", stack[i].name.c_str(), stack[i].gramm, stack[i].kkal);
}
fTimeStop = clock();
duration = (double)(fTimeStop - fTimeStart) / CLOCKS_PER_SEC;
printf("Time: %f\n", duration);
printf("Memory: %f\n", pam);
break;
}
} while (a != -1);
}
