• Embed Doc
  • Readcast
  • Collections
  • CommentGo Back
Download
 
Originalpages:004-033
1
УДК681.142.2Третий том известной монографии одного из крупнейших американских специалистов по про-граммированию Д. Кнута (первый том вышел в издательстве ”Мир” в 1976 г., второй—в 1977 г.)состоит из двух частей: ”Сортировка” и ”Поиск”. В них подробно исследуются различные алгорит-мы внутренней ивнешнейсортировки, изучаются методыпоискаинформациив таблицахна основесравнения или преобразования ключей, даются оценки эффективности предлагаемых алгоритмов.Книга снабжена большим количеством задач и примеров разной степени трудности, существеннодополняющихосновнойтекст.От других руководств по программированию книга выгодно отличается строгостью изложенияи широким применением математического аппарата. Вместе с тем она доступна студентам первогокурса. Знакомство с двумя первыми томами желательно, но не обязательно. Каждый, кто хочетнаучиться квалифицированнопрограммировать, найдетвнеймногополезного.Рассчитана наширокийкругпрограммистов.
Редакциялитературы поматематическимнаукам
20204
022041(01)
78
22
78
c
Переводнарусскийязык,”Мир”.1978
 
2
Originalpages:004-033
ПРЕДИСЛОВИЕРЕДАКТОРОВПЕРЕВОДА
Д. Э. Кнут хорошо знаком советскому читателю по переводам двух первых томов его обширноймонографии”ИскусствопрограммированиядляЭВМ”иненуждаетсяваттестации.Настоящаякнигапредставляет собойтретийтомипосвященаалгоритмам сортировкиипоискаинформации.Исторически зарождениеметодовмашиннойсортировкиможно отнестиещек прошломустоле-тию,изастольдлительноевремямногиеспециалистыуспелииспробоватьсвоисилывэтойобласти.Написанонемалоотчетов,статей,монографий.ИдажевэтихусловияхкнигаД.Кнутасталасобыти-ем.Посуществуэтоэнциклопедия,вкоторойможнонайтилюбуюсправку,касающуюсяалгоритмов,методовихоценок,историивопросаинерешенныхпроблем.Нетнуждыговоритьоважностисамойобласти.Практическисортировкаипоисквтойилииноймере присутствуют во всех приложениях; в частности, при обработке больших объемов данных эф-фективность именно этих операций определяет эффективность, а иногда и работоспособность всейсистемы.Поэтому,каксправедливоотмечаетавтор,книгаадресовананетолькосистемнымпрограм-мистам, занимающимся разработкой программ сортировки и поиска информации. Можно сказать,чтодостаточночеткиепредставленияобэтойобластинужныприрешениилюбойзадачинаЭВМкакобязательныеэлементыискусствапрограммирования.Кроме теоретической и практической ценности, книга имеет большое методическое значение.Многие авторы и преподаватели смогут извлечь из нее новые и полезные сведения не только посуществурассматриваемых вопросов,ноипоспособуихизложения.Авторумастерскиудается”рас-слоить” весь материал таким образом, чтокнигуможно использовать практическиналюбом уровнезнакомстваспредметомиприразличнойобщейматематическойподготовленностичитателя.Переводвыполненпоизданию1973г.(перваяредакция)свнесениеммногих(около700)исправ-лений и добавлений, любезно предоставленных автором. Разделы с 5.1 по 5.3.2 переведены Н. И.Вьюковой;разделыс5.3.3по5.5ипредисловиеА.Б.Ходулевым;главу6перевелВ.А.Галатенко.Ю.М.БаяковскийВ.С.Штаркман
ПРЕДИСЛОВИЕ
Кулинария сталаискусством,высокойнаукой;поваратеперь—благородныелюди.ТитЛивий,АЬUrbeCondita,XXXIX.vi(РобертБертон,AnatomyofMelancholy,1.2.2.2)
1
Материал этой книги логически продолжает материал по информационным структурам, изло-женный в гл. 2, поскольку здесь к уже рассмотренным концепциям структур добавляется понятиелинейноупорядоченныхданных.Подзаголовок”Сортировкаипоиск”можетпривестикмысли,чтоэта книгапредназначеналишь длясистемных программистов, занимающихся построениемунивер-сальных программ сортировки или связанных с выборкойинформации. Однако в действительностипредметсортировкиипоискадаетнампрекраснуюосновудляобсужденияширокогоклассаважныхобщихвопросов:Как находитьхорошиеалгоритмы?Как улучшатьданныеалгоритмы ипрограммы?Как исследоватьэффективностьалгоритмовматематически?Как разумно выбратьодинизнесколькихалгоритмовдлярешенияконкретнойзадачи?В какомсмысле можно доказать,что некоторыеалгоритмы являются ”наилучшими извозмож-ных”?Как теориявычисленийсогласуется спрактическимисоображениями?Какэффективноиспользоватьразличныевидывнешнейпамяти—ленты,барабаны,диски—длябольшихбазданных?Я думаю, что на самом деле в контексте сортировки и поиска встречается практически
любой
важныйаспектпрограммирования.Настоящий том состоит из гл. 5 и 6 монографии. В гл. 5 рассматривается сортировка (упорядо-чение); это очень большая тема, она разбита на две главные части—внутреннюю и внешнюю сорти-ровку. В эту главу входят также дополнительные разделы, развивающие вспомогательную теориюперестановок (
§
5.1) и теорию оптимальных алгоритмов сортировки (
§
5.3). В гл. 6 мы имеем делос поиском определенного элемента в таблице или файле; содержимое этой главы подразделяется на
1
РобертБертон(1577–1640) английскийученый,писательитеолог.
Прим.Перев.
 
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
ПереводА.А.Франковского.—
Прим.Перев.
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...
You must be to leave a comment.
Submit
Characters: ...