Цитата:
Сообщение от alkoustas
Нужно рандомизировать строки файл 2 гига ~150кк строк
sort -R что-то долго думает
|
если перефразировать, то ты в один заход пытаешься отсортировать
все большое количество строк согласно последовательности случайных чисел, близкой к
идеальной. Сложность сортировки в данном случае O(X*X), т.е.
квадратично зависит от количества строк X.
если идеальность не так важна, то разбей файл на N-частей отсортируй той же командой и потом склей. Таким образом сложность будет N*O((X/N)*(X/N)), хотя на самом деле это также равно O(X*X), но при равных условиях эксплуатации (память, процессор), второй вариант отработает быстрее, т.к. X будет меньше в N раз, значит "абсолютная сложность" сортировки уменьшится в N*N раз, а процесс сортировки всего файла в N раз. Похожая ситуация с расходом памяти, а это актуально, если вдруг используется виртуальная.