Объясните как вычисляется "пересылка" |
Объясните как вычисляется "пересылка" |
Vitik |
21.04.2011 23:52
Сообщение
#1
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Репутация: 0 |
Всем привет!
Извиняюсь если написал не туда. На руках работа однокурсника, все знаю что там делается и как, но не могу попасть в заданное число пересылок в сортировке(~количество перемещений данных в память). Не могу сказать что ошибся он, т.к. я не знаю как вычисляется кол-во пересылок Поэтому помогите пожалуйста, как это подсчитывается. Буду очень признателен, за ваши ответы. |
Lapp |
22.04.2011 0:43
Сообщение
#2
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
На руках работа однокурсника, все знаю что там делается и как, но не могу попасть в заданное число пересылок в сортировке(~количество перемещений данных в память). Не могу сказать что ошибся он, т.к. я не знаю как вычисляется кол-во пересылок Гм.Поэтому помогите пожалуйста, как это подсчитывается. Я полагаю, что пересылка - это одна операция с памятью. Например, простой обмен двух переменных a и b между собой с использованием буфера c - это 3 пересылки: c:= a; Если так менять два массива в цикле: for i:=1 to n do begin- то это уже как бы 3n пересылок.. Но это все не совсем верно на самом деле, так как хороший оптимизирующий компилятор просто разместит переменную c в регистрах, и в результате реальных обменов с памятью останется только два на один такт цикла. Но вообще-то у этого термина могут быть различные толкования, мне кажется. Если я не прав, пусть меня кто-нить поправит.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Текстовая версия | 31.10.2024 15:18 |