Тайм-аут алгоритма естественного k-путевого слияния истекает, когда он уже N*LogN? ⇐ C++

Программы на C++. Форум разработчиков
Anonymous
Тайм-аут алгоритма естественного k-путевого слияния истекает, когда он уже N*LogN?

Сообщение Anonymous »

Я работаю над следующим заданием. Предполагается, что мы знаем основы C++ и некоторые обычные и продвинутые алгоритмы сортировки:

Смоделируйте внешний алгоритм сортировки, используя естественное 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

Вернуться в «C++»