|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[6] Упражнения 1.3-1 Пусть сортировки вставками и слиянием исполняются на одной и той же машине и требуют 8га2 и 64га log га соответственно. Для каких значений га сортировка вставками является более эффективной? Как можно улучшить алгоритм сортировки слиянием? 1.3-2 При каком наименьшем значении га алгоритм, делающий 100га2 операций, эффективнее алгоритма, делающего 2п операций? Задачи 1-1 Сравнение времени работы Пусть имеется алгоритм, решающий задачу размера га за /(га) микросекунд. Каков максимальный размер задачи, которую он сможет решить за время tl Найти его для функций и времён, перечисленных в таблице.
1-2 Сортировка вставками для коротких кусков Асимптотически сортировка слиянием быстрее сортировки вставками, но для малых га соотношение обратное. Поэтому имеет смысл достаточно короткие куски не разбивать дальше, а применять к ним сортировку вставками. Вопрос в том, где следует провести границу. а.Пусть массив длины га разбит на к частей размера п/к. Покажите, что можно отсортировать все части по отдельности (с помощью сортировки вставками) за время Q(nk). б.Покажите, что после этого можно слить все части в один упорядоченный массив за время 0(ralog(ra/£;)). в.Тем самым общее время работы такого смешанного алгоритма есть в (пк + га log (п/к)). Какова максимальная скорость роста к как функции от га, при котором это время по-прежнему есть 0(ralog га)? г.Как бы вы стали выбирать оптимальное значение к на прак- тике? 1-3 Число инверсий Пусть А[1..п] - массив из га различных чисел. Нас будет интересовать количество инверсий (inversions) в этом массиве, т.е. число пар г < j, для которых A[i] > A[j]. а.Укажите пять инверсий в массиве (2, 3, 8, 6,1). б.Каково максимально возможное число инверсий в массиве длины га? в.Как связано время работы алгоритма сортировки вставками и число инверсий? Объясните свой ответ. г.Постройте алгоритм, который считает число инверсий в массиве длины га за время О (га log га). (Указание: Модифицируйте алгоритм сортировки слиянием.) Замечания Есть множество хороших книг о построении алгоритмов. Вот некоторые из них: Ахо, Хопкрофт и Ульман [4,5], Баас [14], Брас-сар и Бретли [14], Хоровиц и Сахни [105], Кнут [121, 122, 123], Манбер [142], Мельхорн [144, 145, 146], Пурдом и Браун [164], Рейнгольд, Нивергельт и Део [167], Седжвик [175], Уилф [201]. Практические аспекты разработки эффективных алгоритмов: Бентли [24,25], Гоннет [90]. В 1968 году Кнут опубликовал первый из трёх томов серии Искусство программирования для ЭВМ [121, 122, 123], который стал началом новой эпохи в науке об эффективных алгоритмах. Все три тома до сих пор остаются незаменимым справочником. Как пишет Кнут, слово «алгоритм» происходит от имени арабского математика девятого века Ал-Хорезми (al-Khowarizmi, или al-Khwarizmi). Ахо, Хопкрофт и Ульман [4] указали на важность асимптотического анализа времени работы как средства сравнения эффективности алгоритмов. Они широко использовали рекуррентные соотношения для получения оценок времени работы. Книга Кнута [123] содержит исчерпывающее изложение множества алгоритмов сортировки. Он сравнивает различные алгоритмы, точно подсчитывая число различных шагов (мы делали это для сортировки сравнением). Рассматриваются различные варианты сортировки вставками, включая сортировку Шелла (D. L. Shell), которая использует сортировку подпоследовательностей с постоянным шагом для уменьшения числа операций. Сортировка слиянием также описана в книге Кнута, который указывает, что механическое устройство для слияния двух стопок перфокарт за один проход было изобретено в 1938 году. По- видимому, Джон фон Нейман (J. von Neumann), один из основателей информатики, написал программу сортировки слиянием для компьютера EDVAC в 1945 году. |
Среды: Smalltalk80 MicroCap Local bus Bios Pci 12С ML Микроконтроллеры: Atmel Intel Holtek AVR MSP430 Microchip Книги: Емкостный датчик 500 схем для радиолюбителей часть 2 (4) Структура компьютерных программ Автоматическая коммутация Кондиционирование и вентиляция Ошибки при монтаже Схемы звуковоспроизведения Дроссели для питания Блоки питания Детекторы перемещения Теория электропривода Адаптивное управление Измерение параметров Печатная плата pcad pcb Физика цвета Управлении софтверными проектами Математический аппарат Битовые строки Микроконтроллер nios Команды управления выполнением программы Перехода от ahdl к vhdl Холодный спай Усилители hi-fi Электронные часы Сердечники из распылённого железа Анализ алгоритмов 8-разрядные КМОП Классификация МПК История Устройства автоматики Системы и сети Частотность Справочник микросхем Вторичного электропитания Типы видеомониторов Радиобиблиотека Электронные системы Бесконтекстный язык Управление техническими системами Монтаж печатных плат Работа с коммуникациями Создание библиотечного компонента Нейрокомпьютерная техника Parser Пи-регулятор ч.1 ПИ-регулятор ч.2 Обработка списков Интегральные схемы Шина ISAВ Шина PCI Прикладная криптография Нетематическое: Взрывной автогидролиз Нечеткая логика Бытовые установки (укр) Автоматизация проектирования Сбор и защита Дискретная математика Kb радиостанция Энергетика Ретро: Прием в автомобиле Управление шаговым двигателем Магнитная запись Ремонт микроволновки Дискретные системы часть 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||