Смоделируйте внешний алгоритм сортировки, используя естественное k-путевое слияние.
Вам дана последовательность из N элементов xi, количество одновременно объединяемых запусков K и количество шагов A.
Определите последовательность действий после каждого шага. Если последовательность отсортирована до шагов A, завершите процесс.
Ограничения на входные данные:
- 1 < = N > A;
int prev = 0;
int numRuns = 1;
vector runs(1);
if (N == 1) {
cin >> prev;
cout prev;
runs[0].push_back(prev);
for (int i = 1; i < N; i++) {
int x;
cin >> x;
if (x >= prev) {
runs[numRuns - 1].push_back(x);
} else {
runs.push_back(vector());
runs[numRuns].push_back(x);
numRuns++;
}
prev = x;
}
/*for(int i = 0; i
Подробнее здесь: https://stackoverflow.com/questions/791 ... eady-nlogn