В последнюю пятницу перед отпуском Ковтенко объявил, что согласно традиции уход в отпуск нужно «обмыть». От похода в кафе по июльской жаре он отказался. После посещения гастронома расположились на лавке в дебрях лесопарка на восточном склоне оврага. Пейзаж был изумительный. Солнце уже скрылось за редкой березовой рощей на западном склоне. Белые стволы оттенялись молодой травой, а верхушки берез отливали золотом. Тишина нарушалась только щебетанием птиц.
Виталий заказал себе массандровское сухое вино, Бриль и Ковтенко предпочли «Московскую».
Ковтенко пользовался успехом у женщин, любил сальные анекдоты, поэтому разговор вскоре повернул в известное русло.
– Свежий анекдот про нас. Сейчас модно начальству дисплеи устанавливать. Поставили директору, а ящик ничего не показывает. Директор позвонил начальнику ИВЦ. Тот обещал прислать программистку. Программистка заходит в приемную, а секретарша к ней: «Вы зачем?». «Так я с АСУ» – отвечает программистка. «Я тоже сосу, но не в рабочее же время!»
Бриль загоготал довольный, Виталий невольно улыбнулся – для репертуара Ковтенко анекдот был достаточно остроумным.
– В отделе сто двадцать баб, а переспать почти не с кем, – продолжил любимую тему Ковтенко.
У него была жена, врач, и почти взрослая дочь.
– Тут ты не прав, – ответил Бриль. – Одна Корниенко чего стоит.
– Боюсь с ней связываться. Наладчики, что сдавали «Мински» в эксплуатацию, придумали ей кличку «швейная машинка».
– Тараторит она как пулемет, это точно, – подержал Бриль.
– Если бы только это! Она в постели такое выделывает. Зато другая, не буду называть, и так догадаетесь, корчит из себя недотрогу. Не замужем в двадцать девять лет и хранит невинность. Это же надо, симпатичная с лица и фигура ладная. Рассказал ей анекдот: «Приходит парень к девушке домой. А дома только ее дед. Спрашивает парня: зачем она тебе? Пришел палку поставить, – отвечает парень. Так поставь ее в прихожей в уголок, – советует дед». Анекдот-то с бородой, а она говорит: «Не понимаю, что здесь смешного. Ну, принес парень палку…».
Бриль громко засмеялся:
– Я понял о ком речь, – продолжил Бриль – Возможно, она прожила в изолированной среде. Женщины вообще очень разные. Недавно одна каждую неделю свидания мне назначала, в любви объяснялась, а погибла с любовником в автокатастрофе.
Виталий тоже догадался о ком речь.
– Одно другому не мешает, – глубокомысленно заметил Ковтенко. – Давайте лучше еще по единой выпьем.
Ковтенко и Бриль допили бутылку водки и принялись за вино.
– Нужно помочь, Виталию, – объявил Ковтенко, – а то он с таким темпом оставит ценный продукт какому-нибудь бродяге. И отмалчивается при этом. А в тихом болоте черти водятся. Небось уже присмотрел себе программисточку. Есть, есть там у него персики в самом соку…
– Меня вполне устраивает семейная жизнь, – счел нужным ответить Виталий.
– Семейная жизнь одно, а личная другое! Ты только не признавайся в женском коллективе, что верен жене. Уважать перестанут!
– Так я же нанимался техническим руководителем, а не быком производителем в колхозное стадо, – отшутился Виталий.
– Глубоко ошибочное мнение, – продолжил тему Ковтенко. – Человек – животное стадное, а женщина человек не вполне, признает только авторитет сильного самца.
– За такие слова, Петр Федосеевич, феминистки бы тебя распяли, – заметил Виталий.
– Не напоминай мне об этих исчадиях с женскими половыми признаками, правда, не всегда достаточно развитыми. По мне, так нимфоманка Корниенко выше их всех.
– Ну да! Мужское право власти признает безоговорочно, готова молиться на мужика, как на икону.
– Идеальная женщина! Только не везет ей с мужиками…
Виталию не нравилась ее привычка при разговоре с мужчинами касаться руки собеседника легким поглаживающим движением, якобы для привлечения внимания к ее словам. Не нравились также взгляд василиска и мутно-зеленые глаза. Все это он выдержал бы вполне, но технические решения ее подчиненных, а они в данный момент занимались переводом бухгалтерских задач с табуляторов на «Минск-32», не выдерживали никакой критики. Разработчики из ее бюро жаловались, что «табуляторная» технология им навязывается Корниенко, даже после того как технический совет забраковал несколько алгоритмических решений. Назревала необходимость радикального решения. Его Давиденко решил отложить до выхода из отпуска Бриля.
* * *
Расчет аванса в отсутствие Бриля и Ковтенко прошел без проблем. Массивы перфокарт были стандартными, расчетный месяц задавался с консоли ЭВМ. Давиденко посетил машинный зал, что бы ближе познакомиться с процессом расчета. Все было просто: ввод массива перфокарт в оперативную память ЭВМ, повторный ввод для контроля, а потом сортировки и печать документов, для каждого документа своя сортировка.
Сортировки были внутренними, то есть в оперативной памяти. Давиденко обратил внимание на слишком большие паузы между печатью документов. Он отыскал Зенкова.
– Борис, диагностика при вводе перфокарт организована великолепно. Ты использовал стандартные макросы ввода перфокарт?
– Стандартные мне не понравились, написал ввод на физическом уровне.
– А какой алгоритм внутренней сортировки используешь?
– Метод «пузырька», я его всегда использовал.
– Так он ведь годится для десяти записей, а не трех тысяч. Ты разве не знаешь, что у метода «пузырька» квадратичная зависимость времени сортировки от размера массива. Есть методы с логарифмической зависимостью… Массив из трех тысяч перфокарт при быстродействии «Минска» тридцать тысяч операций в секунду методом «пузырька» сортируется пятнадцать минут.
– Нужно сутки на аванс и двое на расчет зарплаты, включая сдельную. Машины и так простаивают…
– Это не аргумент в условиях жесткого контроля сроков сдачи документов. Понимаю, что для инженерных задач, которыми ты занимался, больше десяти записей сортировать не пришлось.
– Была и сотня. Что ты предлагаешь конкретно?
– В нашей технической библиотеке есть несколько выпусков сборника алгоритмов под редакцией Агеева. В нем публикуются алгоритмы из американского фонда алгоритмов на языке АЛГОЛ, адаптированные под наши компиляторы. В одном из выпусков есть алгоритм сортировки Шелла, как раз с логарифмической зависимостью времени сортировки…
– Не стану я тащиться в библиотеку и с АЛГОЛ не знаком.
– Хорошо. Сегодня нарисую тебе блок-схему алгоритма и прошу к расчету заработной платы заменить все сортировки в твоих программах. Договорились?
– Будет настроение, попробую!
– Попробуй, не пожалеешь! Пригодится на будущее…
– Я принципиальный противник сортировок вообще, сейчас занимаюсь системой ввода-вывода, которая заменит минскую.
Давиденко уже знал, что Зенков работает над каким-то заданием, утвержденным лично Брилем, поэтому на него не рассчитывал ни в ближайшее время, ни в будущем.
Спустя неделю Зенков пригласил Давиденко в машинный зал. Около перфокарточного ввода стоял Зенков с оператором.
– Ты был прав. Самый большой цех сортируется полторы минуты, – громко произнес Зенков, как только Виталий открыл дверь.
– Слишком долго! Покажи исходный текст программы.
– Да, я несколько модифицировал алгоритм, – признался Зинков и достал из кармана брюк измятый листок.
Виталий узнал свою блок-схему.
– Вот этот внутренний цикл я убрал. По-моему он лишний, – показал на схеме Зенков.
– Нет не лишний. Он ускоряет слияние блоков, если они не пересекаются по значению ключей, то есть взаимно упорядочены. Я много экспериментировал с данным алгоритмом, можешь мне верить.
– Ладно, попробую, – недовольно буркнул Зенков.
На следующий день он уже не приглашал Давиденко, а коротко сообщил:
– Пятнадцать секунд.
– Спасибо, это большой подарок. Как ты теперь оцениваешь общее время расчета аванса и получки.
– Часов шесть-семь на аванс, и двенадцать на получку.