Re[4]: Как правильно сортировать содержимое больших файлов?
От: _FRED_ Черногория
Дата: 22.08.22 05:49
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>После преобразования будет

PD>415\0Apple\0
PD>30432\0Something something something\0
PD>1\0Apple\0
PD>32\0Cherry is the best\0
PD>2\0Banana is yellow\0

PD>(точки я убрал, но они погоды не делают)


Тогда не понял: вы ранее писали, что "Конец строки тоже заменяем на '\0'.". Что такое "конец строки"? В винде это два символа \r\n. Каждый из них нужно заменить на \0 или только какой-то один?

PD>А массив указателей — на начала каждой исходной строки : p[0] на 415, p[1] на 30432 и т.д.

PD>И тогда p[i] — указатель на число в строке, а p[i] + strlen(p[i]) — указатель на текстовую часть строки
PD>Ну и все. qsort на этот p. В compare сравниваем как нам надо. Строки не переставляем, только p[i] будут переставлены.

Это часть понял, спасибо. Действительно, не могу представить, что случайные перескакивания по файлу, размер которого значительно больше объёма оперативной памяти, будут быстрее.
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.