Originalpages:004-033
3
методы последовательного поиска, методы поиска со сравнением ключей, поиска с использовани-ем свойств цифр, поиска с помощью ”хеширования”; затем рассматривается более сложная задачавыборки по вторичным ключам. Обе главы поразительно тесно переплетаются между собой, междуих предметами имеются близкиеаналогии. В дополнениек гл. 2 рассматриваются два важных видаинформационныхструктур,аименноприоритетныеочереди(п.5.2.3)илинейныесписки,представ-ляемые посредствомсбалансированныхдеревьев(п.6.2.3).Читателю, не знакомому с первым томом этой монографии, рекомендуется обращаться к ука-зателю обозначений (приложение В), так как некоторые из встречающихся в книге обозначений неявляются общепринятыми.Эта книга без большей части математического материала была использована мной в качествеучебника по второму курсу лекций ”Структуры данных” для студентов младших и средних курсов.Математическиечастиэтойкниги,особенно
§
5.1,п.5.2.2,
§
6.3и6.4,моглибысоставитьучебникпоанализу алгоритмов для студентов средних и старших курсов. Кроме того, на основе п. 4.3.3, 4.6.3,4.6.4,
§
5.3ип.5.4.4можнопостроитькурслекций”Сложностьвычислений”длястаршекурсников.Быстрое развитие информатики и вычислительных наук задержало выход в свет этой книгипочти на три года, поскольку очень многие аспекты сортировки и поиска подвергались детальнойразработке.ЯоченьблагодаренНациональномунаучномуфонду,Отделениювоенно-морскихиссле-дований,Институтуобороны,фирмамIBMиNorgesAlmemitenskapeligeForskningsradзапостояннуюподдержкумоихисследований.В подготовкеэтого томак печатимне оказалипомощь многиелица, особенноЭдвард А.Бендер,Кларк Э. Крэйн, Дэвид Э. Фергюсон, Роберт У. Флойд, Рональд Л. Грэхем, Леонидас Гюиба, ДжонХопкрофт,РичардМ.Карп,ГэриД.Кнотт,РудольфА.Крутар, ШеньЛинь,ВоганР.Пратт,СтефанО. Райе, Ричард П; Стэнли, Я. А. ван дер Пул и Джон У. Ренч мл., а также студенты Стэнфорда иБеркли,которымпришлосьискатьошибкиврукописи.Осло, Норвегия,
Д.Э.Кнут
сентябрь1972Писательпользуетсяизвестнымипривилегиями, вблагодетельностикоторых,надеюсь,нетникакихосно-ванийсомневаться.Так,встретивуменянепонятноеме-сто, читатель должен предположить, что под ним кро-етсянечтовесьма полезноеиглубокомысленное.
2
(Джонатан Свифт, ”Сказка бочки”, предисловие,1704)
ЗАМЕЧАНИЯОБУПРАЖНЕНИЯХ
Упражнения,помещенныевкнигахнастоящейсерии,предназначеныкакдлясамостоятельнойпроработки, так и для семинарских занятий. Трудно, если не невозможно изучить предмет, толькочитаятеориюинеприменяяполученнуюинформациюдлярешенияспециальныхзадачитемсамымне заставляя себя обдумывать то, что было прочитано. Кроме того, мы лучше всего заучиваем то,что сами открываем для себя. Поэтому упражнения образуют важную часть данной работы; былипредприняты определенные попытки, чтобы отобрать упражнения, в которых бы содержалось какможнобольшеинформацииикоторыебылобыинтереснорешать.Во многих книгах легкие упражнения даются вперемешку с исключительно трудными. Зача-стуюэтооченьнеудобно,таккакпередтем,какприступатькрешениюзадачи,читательобязательнодолженпредставлятьсебе,скольковремениуйдетунегонаэторешение(иначеонможетразветолькопросмотретьвсезадачи).КлассическимпримеромздесьявляетсякнигаРичардаБеллмана”Динами-ческоепрограммирование”;этоважнаяпионерскаяработа,вкоторойвконцекаждойглавыподруб-рикой”Упражненияиисследовательскиепроблемы”даетсяцелыйрядзадач,гденарядусглубокимиеще нерешеннымипроблемами встречаются исключительно тривиальные вопросы.Говорят, чтоод-нажды кто-то спросил д-ра Беллмана, как отличить упражнения от исследовательских проблем, итотответил:”Есливыможетерешитьзадачу,это—упражнение;впротивномслучаеэто—проблема”.Можно привести много доводов в пользу того, что в книге типа этой должны быть как исследо-вательские проблемы, так и оченьпростые упражнения, и для того чтобычитателю не приходилось
2
ПереводА.А.Франковского.—
Прим.Перев.
Leave a Comment