Форум программистов, компьютерный форум CyberForum.ru

Наиболее быстрый способ сортировки файла в 1 Тб при ограниченном объёме оперативной памяти - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Наиболее быстрый способ сравнения двух экземпляров структур на предмет одинаковости их полей http://www.cyberforum.ru/cpp-beginners/thread1506522.html
Есть структура, в которой есть несколько int-ов и char-ов, какой имеется наиболее быстрый способ в C/C++ для сравнения двух экземпляров этой структуры на предмет полного совпадения значений полей? Я полагаю, что memcmp? (почленово сравнивать структуры наверное далеко не самый быстрый способ...) struct Item { int a; int b; char c;
C++ Заменить "fopen" в c++ на "TOpenDialog" в Builder6 Здравствуйте дорогие форумчане! 1. Что дано: По результатам чтения 1 части книги Пахомова "C++ Для начинающих" написал программу-конвертер. Состоит она из двух частей. Первая - считывает данные из файла *.txt в массив. Вторая - форматирует данные нужным образом и выводит в новый *.txt файл. Общение с файлами организовывал так: FILE * pFile; pFile = fopen ("input.txt" , "r"); http://www.cyberforum.ru/cpp-beginners/thread1506498.html
Приведение массива char[] (или char* ) в LPCTSTR C++
Задача: пользователь вводит директорию, нужно проверить существует ли эта директория. Функция DirExists проверки работает правильно, но аргумент у этой функции имеет тип LPCTSTR, клиент вводит строку (char или char*) преобразование в LPCTSTR происходит неверно. Просьба помочь преобразовать в LPCTSTR. #include "stdafx.h" #include "stdafx.h" #include <windows.h> #include <stdio.h>...
C++ Формула поворота объекта
Здравствуйте! Подскажите, пожалуйста, формулу, по которой можно рассчитать угол ( в радианах ) поворота объекта так, чтобы он смотрел на другой объект. Что-то не получается объяснить на словах, по этому я прикрепил картинку. Нужно просто синенькую фигуру повернуть на красную. Спасибо.
C++ Создание .ехе файла, работающего без подключения библиотек на других компьютерах http://www.cyberforum.ru/cpp-beginners/thread1506415.html
Привет всем. вопрос такой. как в sublime text 3 создать ехе файл(С++(mingw)), который на других компах будеть работать без подключения используемых библиотек. как я понял такой ехе называется статическим. содержит весь код библиотек в себе. задавал вопрос на разных форумах. ответа пока нет. спасибо.
C++ Список инициализации конструктора Всем привет. У меня есть некоторые вопросы насчет списка инициализации конструктора. Да и вообще не понимаю отличия от инициализации в теле конструктора и в списке инициализации.Вот например здесь сказано что вызывать конструктор базового класса надо в списке инициализации, а почему так? И вот еще вопрос. Скажем есть такой код. class A { public: int x; A() { x=5; } подробнее

Показать сообщение отдельно
Eraston
53 / 10 / 2
Регистрация: 09.09.2014
Сообщений: 123
30.07.2015, 14:04     Наиболее быстрый способ сортировки файла в 1 Тб при ограниченном объёме оперативной памяти
Цитата Сообщение от ct0r Посмотреть сообщение
Ну у нас в файлах уже все отсортировано, а блоками мы читаем только для ускорения чтения с диска. Сливаем их по обычному алгоритму, а как только накопится достаточно отсортированных значений - сбрасываем кусок на диск.
Я сейчас просто попробую воссоздать...
Блоки
1: 1 2 2 2 2 2
2: 1 1 1 1 1 9

Тут 2 варианта:
1. Выбирать минимальный из N=колво_открытых_блоков элементов (4*N байт) и писать в выходной файл.
2. Загрузить сразу определенное количество элементов (тут 6, т.е. N*6*4, а вообще... чтобы 2 Гб забить) и а) отсортировать их, б) записать.
а) память занята, сортировка идет, файл не пишется
б) память занята, сортировка не идет, файл пишется
3. В случае с тредами:
а) память занята, сортировка идет, файл пишется
б) память занята, сортировка идет, файл пишется

Добавлено через 4 минуты
Цитата Сообщение от Butt-Head Посмотреть сообщение
3
55
24
2
3
2
Чтение-память-запись-блока
3 55 - 3 55
24 2 - 2 24
3 2 - 2 3


Блоки
1: 3 55
2: 2 24
3: 2 3


Чтениеизблоков-записьввыходнойфайл
1 шаг: 3 2 2 - 2
1: 3 55
2: 24
3: 2 3
2 шаг: 3 24 2 - 2 2
1: 3 55
2: 24
3: 3
3 шаг: 3 24 3 - 2 2 3
1: 55
2: 24
3: 3
4 шаг: 55 24 3 - 2 2 3 3
1: 55
2: 24
5 шаг: 55 24 - 2 2 3 3 24
1: 55
6 шаг: 55 - 2 2 3 3 24 55
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru