МЕНЮ:
Аналитик | Постановщик задач | Проектировщик | Программист | Программист БД
Инженер по тестированию | Тестировщик | Инженер по документированию
Инженер по внедрению | Инженер поддержки | Менеджер проекта | Менеджер подразделения
Менеджер по продажам | Менеджер по маркетингу | Администратор | Администратор БД
Литература | Контакты
\

Книга Жемчужены творчества программистов на IT БАЗАР

вод и 9.6 с на вычисления. Оптимизация программы сортировки с помощью принципов, изложенных в гл. 8, сокращает время работы до 14 с: 12.3 на ввод-вывод и 1.7 на вычис­ления.
(См. гл. И, особенно задачу 7.) В нижеприведенной программе предполагается, что вы­ходом функции Randlnt (А, В) является случайное пелое число от А до В.
for I := 1 to К do
XCI] := I for I := 1 to К do
Swap(Xm, XHtandlntd,!])
print ХП]
Функция Randlnt обсуждается в разд. 10.2.
Если каждое пелое число появляется максимально 10 раз, мы можем отвести под счет­чик количества его появлений половину байта, т. е. 4 бита. Применяя это решение к за­даче 1, мы можем упорядочить весь файл за один проход, использовав 27 000/2 байтов, или за К проходов, использовав 27 000/2К байтов.
Информация о курсе может быть представлена 27 000 байтами в ОЗУ, если для каждого из всех возможных номеров курсов хранить число имеющихся мест в виде двух байтов. Если число из четырех цифр не является правильным номером курса, то в таблице из 10 000 элементов в его позиции запоминается специальное значение (например, — 1). Такое изменение сокращает время работы предложенной программы с нескольких часов до нескольких минут.
Эффект от установки начальных значений вектора Data [1.. .N] может быть достигнут с помощью сигнатуры, содержащейся в двух дополнительных векторах From и То из N элементов и в целой переменной Тор. Если задано начальное значение элемента Data [I], то From [I] < Тор и То [From [I] ] = I. Таким образом, From - простая сигнатура, а с по­мощью векторов То и Тор гарантируется, что в ячейку From не попадет случайная сигна­тура, обусловленная произвольным содержимым памяти. Пустые элементы в векторе Data теряют свои начальные значения, как показано на рисунке
Data:
3
2
8
3
1 2
/'/--
2 6 | 4
1


Страница №230
*
Зайцев нет
© "IT БАЗАР", 2003. Все права защищены. Создание: © "z-group" студия веб-дизайна, 2003.
Также может поискать работу на прямую в следуйщих организациях:
IT БАЗАР