|
4 / 2 / 2
Регистрация: 13.11.2018
Сообщений: 22
|
||||||
Быстрая сортировка текстового файла по алфавиту за строками19.10.2020, 04:28. Показов 4550. Ответов 34
Здравствуйте. Проблема с сортировкой файла. Задача. У вас слабая машинка с ограниченной оперативной памятью (нужно вложиться в 2мб), отсортировать строки по алфавиту из документа (макс. размер строки равен 10000). Сортировать не содержимое строк, а их самих.
Мой план заключался в использовании алгоритма qsort. Что бы не затрачивать лишнюю память записью всего документа в динамический массив строк, я решил их разбирать по очереди и сортировать именно их номера. Когда мы получаем новые значения номеров, то отправляем их в функцию и переписываем содержимое файла, и так далее. Проблема в том, что сама функция переписи работает, а вот мне кажется проблема в самой функции qs. Подскажите, что не так. Хочу разобраться во всем. Заранее спасибо! Код:
0
|
||||||
| 19.10.2020, 04:28 | |
|
Ответы с готовыми решениями:
34
Сортировка из текстового файла по алфавиту Сортировка данных по алфавиту из текстового файла Быстрая сортировка строк по алфавиту |
|
4 / 2 / 2
Регистрация: 13.11.2018
Сообщений: 22
|
|
| 20.10.2020, 10:47 [ТС] | |
|
0
|
|
|
|
|
| 20.10.2020, 11:18 | |
|
Замеры показывают что текстовый файл размером 50 мб сортирует за 11 сек, 100 мб - за 44 сек, 200 мб - за 176 сек, т.е. при увеличении файла в 2 раза время растёт в 4 раза. Файл размером 800 мб будет сортировать чуть меньше 48 минут
Добавлено через 4 минуты Возможно, переход на сишные FILE придаст скорости
1
|
|
|
4 / 2 / 2
Регистрация: 13.11.2018
Сообщений: 22
|
||
| 20.10.2020, 11:33 [ТС] | ||
|
0
|
||
|
|
||
| 20.10.2020, 11:52 | ||
|
Мне кажется здесь всё упирается не в сортировку а в количество обращений к диску. Оперативки то нет ни фига. Вот и лезем на диск. Бутылочное горлышко
Добавлено через 10 минут
0
|
||
|
4 / 2 / 2
Регистрация: 13.11.2018
Сообщений: 22
|
||
| 20.10.2020, 16:01 [ТС] | ||
|
0
|
||
|
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
|
||
| 20.10.2020, 16:59 | ||
|
0
|
||
|
4 / 2 / 2
Регистрация: 13.11.2018
Сообщений: 22
|
|
| 20.10.2020, 17:42 [ТС] | |
|
0
|
|
|
4 / 2 / 2
Регистрация: 13.11.2018
Сообщений: 22
|
||
| 20.10.2020, 23:49 [ТС] | ||
|
0
|
||
|
377 / 228 / 79
Регистрация: 24.11.2009
Сообщений: 695
|
||||
| 21.10.2020, 03:41 | ||||
0
|
||||
|
4 / 2 / 2
Регистрация: 13.11.2018
Сообщений: 22
|
|
| 21.10.2020, 03:59 [ТС] | |
|
Может мое задание из вида невыполнимых? В блочном тоже сравнения тоже много времени. Хотя бы добиться при таких условиях сортировки за 2 сек 100мб файла
0
|
|
|
|
||||||
| 21.10.2020, 11:00 | ||||||
|
Переделал на сишные FILE, на удивление время только выросло, причём ровно в 1.65 раза: файл 50 мб - 18сек против 11сек на с++ потоках, файл 100 мб - 73сек против 44сек на с++ потоках
Кликните здесь для просмотра всего текста
0
|
||||||
|
377 / 228 / 79
Регистрация: 24.11.2009
Сообщений: 695
|
||||||||
| 21.10.2020, 14:55 | ||||||||
|
igorrr37, пожалуйста, при следующем улучшении, замените имена фаилов переменными и вынесите их вверх. А то для прогона приходится по всему коду автозаменой лазить.
Для подготовки тесовых данных делал так:
получается примерно 2к строк на 1 кб
0
|
||||||||
|
4 / 2 / 2
Регистрация: 13.11.2018
Сообщений: 22
|
||
| 21.10.2020, 18:50 [ТС] | ||
|
0
|
||
|
|
|
| 21.10.2020, 19:19 | |
|
1
|
|
|
4 / 2 / 2
Регистрация: 13.11.2018
Сообщений: 22
|
|
| 21.10.2020, 19:24 [ТС] | |
|
Ахахах ладно буду закрывать тему. Буду отталкиваться от вашего кода.
0
|
|
| 21.10.2020, 19:24 | |
|
Работа со строками текстового файла Программа, сортирующая введенные из текстового файла имена по алфавиту Из исходного текстового файла создать список слов по алфавиту Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|