|
1 / 1 / 1
Регистрация: 26.04.2015
Сообщений: 56
|
||||||
Уменьшить время выполнения программы20.02.2016, 18:08. Показов 6802. Ответов 15
Метки нет (Все метки)
Здравствуйте, мне дана задача, на решение которой дан лимит по времени: 400ms. В моем решении на больших числах программа выполняется 401 - 402ms. Тоесть на одну - две милисекунды дольше чем нужно и поэтому задача не проходит. Обидно не правда ли? Помогите мне что то изменить в решении, чтобы программа выполнялась немного быстрее.
Условие При хранении данных на жестких дисках типа HDD данные группируются по секторам. Все файлы разбиваются на фрагменты, которые в свою очередь записываются в некоторых секторах жесткого диска. При этом сектора, в которых находится один файл не обязательно следуют друг за другом и могут располагаться в произвольном порядке. Одной из проблем HDD-носителей является то, что магнитная головка должна перемещаться от одного сектора к другому, чтобы считать один файл. Вам требуется определить время за которое будет считан файл, разбитый на n фрагментов. В i-м секторе записан фрагмент файла номер fi (1<=fi<=n). При этом в различных секторах находятся в различные фрагменты. Будем считать, что изначально магнитная головка находится в секторе, в котором записан первый фрагмент. Считывание происходит следующим образом: сначала считывается первый фрагмент, затем магнитная головка перемещается к сектору, содержащему второй фрагмент, считывается второй фрагмент и так далее пока не будет считан n-й фрагмент. Фрагменты считываются один за другим по порядку от 1-го до n-го. На перемещение магнитной головки от a-го сектора до b-го уходит |a-b| единиц времени. Временем считывания информации можно пренебречь. Решение
0
|
||||||
| 20.02.2016, 18:08 | |
|
Ответы с готовыми решениями:
15
Уменьшить время выполнения программы Определить время выполнения программы Как закрыть граф. модуль во время выполнения программы |
|
Модератор
|
||
| 20.02.2016, 18:59 | ||
|
А зачем сортировать, если
Добавлено через 47 секунд И каковы ограничения на диапазоны значений переменных?
0
|
||
|
1 / 1 / 1
Регистрация: 26.04.2015
Сообщений: 56
|
|
| 20.02.2016, 19:12 [ТС] | |
|
0
|
|
|
Модератор
|
||||||
| 20.02.2016, 19:19 | ||||||
|
Нашёл эту задачу с примерами и пояснениями.
Для её решения нужно получить список секторов файла, упорядоченных по возрастанию номера фрагмента, в то время как на входе - последовательность, упорядоченная по номеру сектора. Наверное нужно считывать в массив так
0
|
||||||
|
1 / 1 / 1
Регистрация: 26.04.2015
Сообщений: 56
|
||
| 20.02.2016, 19:30 [ТС] | ||
|
Например цикл: 2 4 5 1... нужно начинать с 1, тоесть с четвертого номера, потом 2, тоесть 1 номер и так далее. А потом обработка t:=t+abs(1-4)
0
|
||
|
Модератор
|
||||||
| 20.02.2016, 19:44 | ||||||
|
Ну, не "ты", а "вы". А во вторых - правильно понял, и правильно реализовал.
Code 5 1 3 5 4 2
0
|
||||||
|
1 / 1 / 1
Регистрация: 26.04.2015
Сообщений: 56
|
||
| 20.02.2016, 20:54 [ТС] | ||
|
0
|
||
|
1 / 1 / 1
Регистрация: 26.04.2015
Сообщений: 56
|
|
| 20.02.2016, 21:24 [ТС] | |
|
0
|
|
|
Модератор
|
||
| 20.02.2016, 21:56 | ||
|
Добавлено через 8 минут А простой вопрос - на том сайте среди компиляторов присутствует Pascal ABC?
0
|
||
|
1 / 1 / 1
Регистрация: 26.04.2015
Сообщений: 56
|
|
| 20.02.2016, 21:57 [ТС] | |
|
0
|
|
|
Модератор
|
||||||
| 20.02.2016, 22:19 | ||||||
|
Я привёл не готовый для сдачи код, а продемонстрировал алгоритм. Чтобы не набирать каждый раз исходные данные во время отладки - сохранил их в файл.
Вы можете самостоятельно переработать этот пример. Добавлено через 15 минут
0
|
||||||
|
1 / 1 / 1
Регистрация: 26.04.2015
Сообщений: 56
|
||
| 20.02.2016, 23:34 [ТС] | ||
|
Да, действительно работает. Благодарю.
Добавлено через 10 минут
0
|
||
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
||
| 20.02.2016, 23:46 | ||
|
0
|
||
|
Модератор
|
|
| 21.02.2016, 08:42 | |
Сообщение было отмечено GreenFoxer как решение
Решение
1
|
|
|
1 / 1 / 1
Регистрация: 26.04.2015
Сообщений: 56
|
|
| 21.02.2016, 11:26 [ТС] | |
|
0
|
|
| 21.02.2016, 11:26 | |
|
Помогаю со студенческими работами здесь
16
Уменьшить время работы компилятора Время выполнения блока кода Как задать время выполнения команды? Как ввести строки с клавиатуры во время выполнения оператора case?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|