С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Внешняя сортировка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Простая СУБД. H*E*L*P* http://www.cyberforum.ru/cpp-beginners/thread195718.html
Вообщем БД вроде как создается, элементы добавляются только первый раз, при создании БД, потом при повторных запусках не хочет добавлять. И еще одна мелочь, при заполнении, перескакивает одно поле...
C++ Двумерные массивы. Разделить элементы каждого столбца на последний элемент столбца Уважаемые, нужна помощь. Дано матрицу Т размером 6х5. Разделить элементы каждого столбца на последний элемент столбца. Преобразованную матрицу напечатать. Язык Си. Как реализовать? Добавлено через... http://www.cyberforum.ru/cpp-beginners/thread195715.html
C++ Отобразить матрицу симметрично относительно побочной диагонали
Задание: Заполнить матрицу случайными числами. Отобразить матрицу симметрично относительно побочной диагонали.
Про наследование от exception C++
Есть пример наследования класса для создания собственных исключений: class MyException: public std::exception { virtual const char* what() const throw() { return "My exception happened"; }...
C++ непрерывная последовательность в массиве http://www.cyberforum.ru/cpp-beginners/thread195693.html
Помогите сделать. Задание: вывести начальные индексы всех непрерывных последовательностей чисел с неувеличивающимися значениями. размерность массива 200, диапазон значений -50...50. у мень...
C++ programma stroki Помогите с решением задачи, пожулуйсто, очень надо просто составить программу с меню, выполняющая при вводе чисел 1,2,3,4,5 следующее: 1) Ввод K (K<=5) и K из малых латинских (>2) букв в строковый... подробнее

Показать сообщение отдельно
Rustik665
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 9

Внешняя сортировка - C++

22.11.2010, 21:28. Просмотров 1310. Ответов 2
Метки (Все метки)

Здравствуйте, уважаемые форумчане!
Есть несколько вопросов по заданию моей курсовой. Надеюсь получить советы/помощь от Вас.
Собственно задание:
Разработать программу для реализации алгоритма внешней сортировки слиянием для 10 файлов (количество файлов для слияния от 2 до 10 задается пользователем). Данные предварительно записать в n файлов(которые в свою очередь отсортированы любым методом). Пользователь задает имена файлов с исходными данными. Результаты сортировки записать в новый файл, указанный пользователем. Отобразить на экране график полученного отсортированного массива.
Приложение диалоговое.

Что сейчас сделал: Создал n=2..10 файлов, записал в них случайные числа(количество чисел задается пользователем), сохранил. Вот собственно код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for (int i=0; i<m_num; i++)
{
        CFileDialog fd(FALSE, "txt", "file_");
        fd.DoModal();
        CFile file(fd.GetPathName(), CFile::modeCreate|CFile::modeReadWrite);
        UpdateData(1);
        int r;     
        for (int i=0; i<m_num2; i++)
        {
 
                r=m_num2*rand();
 
                file.Write(&r, sizeof(r));
        };
file.Close();
};
Мои проблемы(точнее чего я не знаю, как делать):
1. Каким образом сортировать эти файлы? К примеру методом пузырька. Как сравнивать текущее и следующее число. При этом нельзя ничего загонять в массив в памяти(Важно! Это по условию.), надо прямо в файле сортировать.

2. После пункта 1, мне надо выполнить сортировку слиянием. Не могу понять, как можно пронумеровать файлы, чтобы знать, с какого файла считывать данные для сортировки(как я понял, сортировка слиянием заключается в том, что надо последовательно с каждого файла считывать по элементу и записывать минимальное в файл результата).

Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.