Страница 43 из 81
Глава 15
Ох не зря я вспоминал алгоритм быстрой сортировки, когда начинал играться с Си. Его и воспроизвел на доске, собственно, на языке, созданном Деннисом Ритчи. Си не умрёт никогда — так и знай, на нас работы хватит, не переживай.
Квиксорт — самая-самая классика задач упорядочивания массива. Он и в новейшем времени актуален, но уже не совсем в чистом виде.
Никаких революций и фурора написанный мной на доске алгоритм совершить не должен, его придумали еще в какие-то лохматые времена, чуть ли не в шестидесятых, но вот доказать мою собственную компетентность безупречный код на Сях обязан. И утереть нос расисту-аспиранту, да. Пусть весь мой опыт и говорит о том, что так легко «белый господин» обезьянку из гетто за равного не признает. Но с тем же Миллером в итоге удалось контакт наладить.
Группа поддержки из зала притихла. Когда какой-то там унтерменьш вдруг начинает демонстрировать неожиданные навыки, они всегда затыкаются. Сэм смотрел на мой код с прищуром и недоверием.
— Для чего нужно вот это условие? — ткнул он подобранной со стола указкой в третье ключевое ветвление.
— Проверка на то, что элемент равен опорному. Без нее будет медленно работать на массивах с большим количеством повторяющихся чисел.
— В классическом варианте быстрой сортировки нет проверки на равенство, только на больше и меньше. Вы сами придумали модификацию?
Конечно, не сам. Квиксорт ведь до моего рождения изобрели. Мы его в нашем политехе досконально разбирали и я за каждую строчку поручиться готов. Между прочим, мне есть, как алгоритм улучшить. На коротких массивах до десяти чисел лучше использовать простую сортировку подстановкой, поэтому доцент говорил нам иметь две функции и вызывать ту, что сработает быстрее.
— По большей части да, мы придумали этот алгоритм вместе с мисс Джулай, когда она обучала меня языку Си, — вспомнилась старая отмазка.
Очень не хочется прослыть плагиатором, но если вдруг какой-нибудь умный дядька, тот же самый, что придумал доработку в реальности, вдруг уже изобрел то же самое, то объясню тем, что мысли у умных людей сходятся. Моральная сторона вопроса еще остаётся. Я, получается, какого-то академика обокрал. Может, даже кого-то уровня Вирта или Дейкстры.
— Вы должны понимать, что дополнительное ветвление — это накладные расходы, — еще раз посмотрел на доску Гарланд.
— Все зависит от исходных данных, сэр. Мы с мисс Джулай пришли к выводу, что в большинстве реальных случаев доработанная нами версия покажет себя лучше.
— Да кто она вообще такая?
— Мисс Джулай — это наша соседка из Лос-Анджелеса. Она научила меня играть в шахматы и программировать. Моя наставница, если угодно. Так мы с мисс Бойл доказали нашу состоятельность?
— Да-да, конечно, давайте ваши бланки, — рассеянно пробормотал Гарланд. По его лицу видно, что он уже мысленно в компьютере, вбивает мой код в терминал и оценивает эффективность.
Оба мы получили свои подписи в заявлениях о приёме на курс. Теперь придется вернуться в канцелярию и потратить сто баксов за сомнительную честь продолжить посещать курсы по языку, и так мне превосходно известному.
— Парень… Колон, — заглянул в бланк аспирант, — твой алгоритм выглядит любопытно, я пойду проверю его на стенде, на следующем занятии скажу результаты.
— Он называется джулайсорт, в честь моей наставницы, — поправил я его.
— Ага, как скажешь, твоё право назвать, как угодно, — совсем по-дружески хихикнул парень.
Вся прежняя враждебность Сэма куда-то ушла. Как же приятно ставить на место этих расистов, прямо хоть в МЕЧА вступай ради одного этого. Но это дурной путь, не мой. Да и для предвзятости могут иметься вполне разумные основания.
— Дождись меня, хорошо? Есть разговор, — сказал я Бренде, когда она собралась уходить и получил утвердительный кивок.
Блондинка поджидала меня у выхода из учебного класса.
— Спасибо, что вступился, не ожидала, что в этом университете сохранились рыцари, — сказала она, — учитывай только, что у меня уже есть парень. Никаких подкатов.
— Договорились, — по-деловому протянул ей руку, — я Крис. А ты правда бухгалтер?
— Что, собираешься стебаться? Да, считаю налоги, и у меня хорошо получается! — мгновенно вспыхнула блондинка. — Но я способна на большее! Бухгалтер — это оклад двенадцать тысяч в год и монотонная рутина. В статье в Байте я почитала про язык Си и то, что компиляторы для него появились и на TRS, и на IBM. Если начать изучать его уже сейчас — я стану востребованным специалистом!
— Стоп-стоп-стоп. Не горячись, мне как раз нужен кто-то, кто посчитает налоги для моей фирмы, оформит декларацию и прочее необходимое по закону. Потому и спросил. Я ищу программистов для своей компании. Если сможешь закрыть сразу две позиции — это преимущество.
— Твоей компании? Поняла, для твоего босса. Это умно — послать молодого подчиненного в универ подбирать перспективных.
— Да, мистера Коламбуса из Каналья Геймс.
— Вы что, делаете игры? Это как-то несерьезно. Развлечение для подростков.
— Именно так, рынок с миллиардными оборотами. И у нас отлично получается.
По-хорошему, стоило бы сразу сказать, что я и есть «Мистер Коламбус», но не один лишь Рокки любит подколки и розыгрыши. Сама виновата, что сразу не восприняла меня всерьез, даже после того, как я удивил аспиранта.
— Предложение о работе от мистера Коламбуса — оно серьезное? — спросила Бренда. — То есть я смогу завтра выходить на новое место и мне будут платить… сколько? Учитывай, на всякие глупости вроде часовой ставки я не согласна. Мне нужен стабильный контракт хотя бы на полгода. И я не против заодно заниматься учетом за отдельную плату в нерабочее время.
— Серьезное, — кивнул я, — если у тебя есть время, можем перекусить и пообщаться. Сначала всё-таки собеседование. Мне понравилась твоя реализация пузырьковой сортировки — очень аккуратно и, навскидку, без ошибок.
В ресторанчике, показанном Рокки, я взял большую пиццу с пепперони и произнес проникновенную речь о том, как космические корабли бороздят Большой Театр, а Каналья Геймс собирается покорить мир. Про уже пять вышедших игр, контракт с крупным издателем и множество прибыльных идей.
— Ты и есть босс. Колон и Колумб — это одно и тоже, — догадалась девушка. Пиццу она хомячила без малейшего стеснения. — Всё время говорил «мы» или «я», как будто ты самый главный. Ты не слишком молод?
— Я совершеннолетний, — у меня и справка есть. Но эту часть пока умолчал. — Расскажи про себя. Как пришла к программированию?