void writed_arr()//если вводим вручную { int lenght, min, max; cout << "Введите длину массива: "; cin >> lenght; cout << "Введите максимальное значение элементов: "; cin >> max; cout << "Введите минимальное значение элементов: "; cin >> min; int *a = new int[lenght]; array_generation(a, lenght, min, max); use_sorting(a, lenght); cout << endl; }
void method_case_second(function_two f, int minimum, int maximum, int variant) { for (int l = 1000; l <= 8000; l = l + 1000) { out<<"Размер массива: "<<l<<endl; int* etalon = new int[l]; int* sorting = new int[l]; _int64 min = INT_MAX; _int64 max = -2; _int64 sum = 0; int kol = 0; switch (variant) { case 0: array_generation(etalon, l, minimum, maximum); break; case 1: array_generation(etalon, l, minimum, maximum); break; case 2: array_generation(etalon, l, minimum, maximum); bubble_sort(etalon, l); break; case 3: array_generation(etalon, l, minimum, maximum); array_almost_sort(etalon, l); break; case 4: array_generation(etalon, l, minimum, maximum); array_reverse(etalon, l); break; } for (int k = 0; k < 20; k ++) { my_copy(etalon, sorting, l); _asm { RDTSC mov DWORD PTR timestart, eax mov DWORD PTR timestart+4, edx } f(sorting, 0, l - 1); _asm { RDTSC mov DWORD PTR timefinish, eax mov DWORD PTR timefinish+4, edx } if ((timefinish - timestart) > max) { max = (timefinish - timestart); } if ((timefinish - timestart) < min) { min = (timefinish - timestart); } sum = sum + (timefinish - timestart); kol ++; } out<<"Минимальное время: "<<min<<" Ticks"<<endl; out<<"Среднее время время: "<<sum / kol<<" Ticks"<<endl; out<<"Максимальное время: "<<max<<" Ticks"<<endl; delete [] etalon; delete [] sorting; }; out<<endl; }