Читаем Путеводитель для влюбленных в математику полностью

Таким образом, нам придется проделать максимум 99 × 99 = 9801 операцию. Это гораздо лучше первого метода, но все еще неэффективно. Если сравнение и смена позиции требует двух секунд, я закончу спустя пять часов. Это никуда не годится.

И вот я в расстроенных чувствах выхожу из кабинета, чтобы развеяться. В коридоре я встречаю двух постдоков, которые работают под моим научным руководством. Зловещая улыбка змеится на моих губах. Я спешу обратно в кабинет, делю стопку неотсортированных тетрадей пополам и даю по 50 тетрадей каждому постдоку. «Вот вам стопка тетрадей, – говорю я. – Пожалуйста, рассортируйте их по алфавиту и принесите ко мне в кабинет, когда закончите». После чего с воодушевлением возвращаюсь к основной работе[129].

Мне предстоит доделать сортировку, когда постдоки выполнят задание. Нужно превратить две упорядоченные стопки в одну. Насколько это будет трудно? Допустим, у меня есть две стопки тетрадей в алфавитном порядке. Я смотрю на верхние тетради в той и другой стопке, выбираю первую по алфавиту и кладу в итоговую стопку. Диаграмма иллюстрирует процесс.

Когда одна из стопок иссякает, я просто-напросто кладу оставшуюся в конец итоговой стопки. В худшем случае придется проделать 99 операций. Это потребует всего несколько минут!



Но как насчет моих постдоков? У каждого стопка с 50 тетрадями. Постдоки – люди смышленые, поэтому не станут сортировать тетради самостоятельно. Они, в свою очередь, поделят свои стопки пополам (таким образом, в каждой окажется по 25 тетрадей) и передоверят сортировку аспирантам! Когда те закончат, постдокам останется соединить две отсортированные стопки по 25 тетрадей в одну общую по 50. Это потребует максимум 49 операций.

Но четыре аспиранта тоже не дураки. Они делят свои стопки на две части (в одной 12, в другой 13 тетрадей) и находят восемь старшекурсников, чтобы передоверить работу. В результате каждому аспиранту остается соединить две маленькие стопки и отдать их постдокам.

Как старшекурсники сортируют тетради? Несложно догадаться: они делят свои стопки на две части (в одной 6 тетрадей, в другой 7), ловят 16 третьекурсников и отдают им эти стопки. Те находят 32 второкурсника и отдают им раздербаненные стопки (в одних по 3, в других по 4 тетради). Наконец, второкурсники отлавливают 64 первокурсника и отдают им стопки по 1 и по 2 тетради. Первокурсникам делать нечего: они быстро сортируют свою часть и отдают обратно.

Очевидно, эта «схема Понци[130]» экономит мое время, но насколько она эффективна в целом? Посмотрим, как много операций она потребует в худшем случае. Занесем все данные в таблицу:



Максимальное количество операций оказывается существенно меньше, чем при сортировке пузырьковым методом.

К несчастью, в этой схеме есть изъян: у меня сейчас нет постдоков! Так что вместо вербовки целой армии помощников придется работать самому.

Для начала я найду большой незагроможденный стол. Я поделю стопку из 100 тетрадей пополам и положу две стопки по краям стола. Как я их отсортирую? По тому же алгоритму! Поделю две стопки по 50 тетрадей на четыре по 25, а их буду сортировать тем же методом. В худшем случае понадобится 645 операций. Правда, на сей раз мне придется действовать в одиночку. Однако это лучше, чем почти что 10 000 операций при сортировке пузырьковым методом.

Словарное определение не должно включать определяемого слова. Вообразите, что вы ищете в словаре слово оскудение и находите такое определение:

Оскудение: результат оскудения[131].

Что за чушь! Однако наш алгоритм сортировки и слияния грешит именно этой ссылкой на самого себя. Вот более точное определение.

Алгоритм сортировки и слияния

На входе: объекты a1, a2, a3, …, an.

На выходе: те же объекты в отсортированном виде.

1. Если n = 1, сортировка закончена. Пускаем данные на выход. В противном случае переходим к пункту 2.

2. Поделить множество объектов на равные подмножества, если их количество четно, или на подмножества, отличающиеся на единицу, если количество нечетно. Использовать алгоритм сортировки и слияния.

3. Соединить подмножества[132] и пустить результат на выход.

Алгоритм, ссылающийся сам на себя, называют рекурсивным. В отличие от неудачного определения слова оскудение, наш алгоритм работает, потому что рано или поздно дойдет до конечной точки. Когда-нибудь множество объектов сведется к одному, и больше не придется проделывать процедуру заново. Поэтому нет опасности уйти в «бесконечный цикл».

Наибольший общий делитель
Перейти на страницу:

Все книги серии Библиотека фонда «Эволюция»

Происхождение жизни. От туманности до клетки
Происхождение жизни. От туманности до клетки

Поражаясь красоте и многообразию окружающего мира, люди на протяжении веков гадали: как он появился? Каким образом сформировались планеты, на одной из которых зародилась жизнь? Почему земная жизнь основана на углероде и использует четыре типа звеньев в ДНК? Где во Вселенной стоит искать другие формы жизни, и чем они могут отличаться от нас? В этой книге собраны самые свежие ответы науки на эти вопросы. И хотя на переднем крае науки не всегда есть простые пути, автор честно постарался сделать все возможное, чтобы книга была понятна читателям, далеким от биологии. Он логично и четко формулирует свои идеи и с увлечением рассказывает о том, каким образом из космической пыли и метеоритов через горячие источники у подножия вулканов возникла живая клетка, чтобы заселить и преобразить всю планету.

Михаил Александрович Никитин

Научная литература
Ни кошелька, ни жизни. Нетрадиционная медицина под следствием
Ни кошелька, ни жизни. Нетрадиционная медицина под следствием

"Ни кошелька, ни жизни" Саймона Сингха и Эдзарда Эрнста – правдивый, непредвзятый и увлекательный рассказ о нетрадиционной медицине. Основная часть книги посвящена четырем самым популярным ее направлениям – акупунктуре, гомеопатии, хиропрактике и траволечению, а в приложении кратко обсуждаются еще свыше тридцати. Авторы с самого начала разъясняют, что представляет собой научный подход и как с его помощью определяют истину, а затем, опираясь на результаты многочисленных научных исследований, страница за страницей приподнимают завесу тайны, скрывающую неутешительную правду о нетрадиционной медицине. Они разбираются, какие из ее методов действенны и безвредны, а какие бесполезны и опасны. Анализируя, почему во всем мире так широко распространены методы лечения, не доказавшие своей эффективности, они отвечают не только на вездесущий вопрос "Кто виноват?", но и на важнейший вопрос "Что делать?".

Саймон Сингх , Эрдзард Эрнст

Домоводство / Научпоп / Документальное
Введение в поведение. История наук о том, что движет животными и как их правильно понимать
Введение в поведение. История наук о том, что движет животными и как их правильно понимать

На протяжении всей своей истории человек учился понимать других живых существ. А коль скоро они не могут поведать о себе на доступном нам языке, остается один ориентир – их поведение. Книга научного журналиста Бориса Жукова – своего рода карта дорог, которыми человечество пыталось прийти к пониманию этого феномена. Следуя исторической канве, автор рассматривает различные теоретические подходы к изучению поведения, сложные взаимоотношения разных научных направлений между собой и со смежными дисциплинами (физиологией, психологией, теорией эволюции и т. д.), связь представлений о поведении с общенаучными и общемировоззренческими установками той или иной эпохи.Развитие науки представлено не как простое накопление знаний, но как «драма идей», сложный и часто парадоксальный процесс, где конечные выводы порой противоречат исходным постулатам, а замечательные открытия становятся почвой для новых заблуждений.

Борис Борисович Жуков

Зоология / Научная литература

Похожие книги

Неандертальцы
Неандертальцы

Неандертальцы не были нашими прямыми предками, но тем не менее они наши ближайшие родственники, и у нас с ними очень много общего. Называть их тупиковой ветвью эволюции, по мнению автора этой книги, столь же неверно, как неверно применять этот эпитет по отношению, скажем, к коренному населению Тасмании и другим первобытным популяциям людей, уничтоженным в результате европейской колонизации. Скорее, неандертальцев следует считать «дублёрами» гомо сапиенс, запасным вариантом антропогенеза. Почему же история выбрала нас, а не их? Как происходил этот выбор? Что сыграло в нём решающую роль? Был ли он предопределен заранее или зависел больше от привходящих и потому во многом случайных обстоятельств?Автор рассматривает эти и многие другие вопросы, попутно суммируя и в доступной для неспециалистов форме излагая то, что известно сейчас о происхождении и эволюционной истории неандертальцев, их умственных и языковых способностях, материальной и зарождавшейся духовной культуре, о динамике их расселения и причинах вымирания. По каждой из перечисленных тем учтены наиболее интересные и важные сведения, имевшиеся в распоряжении палеоантропологии, археологии и смежных с ними наук на середину 2010 г.Книга адресована всем, кого занимает древнейшее прошлое человечества — от академиков до студентов и школьников старших классов.

Леонид Борисович Вишняцкий

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература / История / Биология / Научпоп / Образование и наука / Документальное
Дилемма всеядного: шокирующее исследование рациона современного человека
Дилемма всеядного: шокирующее исследование рациона современного человека

Вы когда-нибудь задумывались о том, как еда попадает на наш стол? Вы купили продукты в супермаркете или на фермерском рынке? А может быть, вы сами вырастили помидоры или привезли гуся с удачной охоты? Или заказали бургер в ближайшем ресторане фастфуда? У любого блюда есть своя история, и, прежде чем стать почетным гостем на нашем ужине, оно переживает свою историю. Майкл Поллан, известный американский писатель-публицист, изучил 3 глобальных способа получения пищи человеком: промышленная пищевая цепь, где главную роль играет кукуруза, большие и локальные частные хозяйства, а также собирательство и охота. Каждый из этих способов был детально изучен автором, кроме того, Майкл самостоятельно добывал себе обед согласно принципам каждой пищевой цепи, делился не только результатами своей «практической» работы, но и изучал морально-этические вопросы выбора еды человеком. Человек – существо всеядное, и то, какую еду мы выбираем каждый день, влияет не только на наше здоровье, но и на наше выживание как целого вида, а также на среду нашего обитания.

Майкл Поллан

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература / Здоровье и красота / Дом и досуг