Главная » Просмотр файлов » Искусство программирования на Си

Искусство программирования на Си (984073), страница 40

Файл №984073 Искусство программирования на Си (Искусство программирования на Си) 40 страницаИскусство программирования на Си (984073) страница 402015-07-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 40)

и Кнут (Кпш!з) нс зря осмеивают метод пузырьковой создан интерфеис пад управлением уувк(оы*, но старый «и- ном. "Так, дев)шки, — сказал Дик, — вРемя сортировать 4. Положить носок на только что освобозкленное на сортировки как алгоритм порядка О(п') и в отношении терфейс был намного богаче, и мне ега очень не хвата- носки, но тот, кто будет сортировать, должен напеть эти пол место. количества сравнений, н в отношении количества пер, ла (х бып одним из настоянных папьзоватепеи системы). очки, а тот, кто без очков, нс должен говорить, куда Итак, не выполняйте пузырьковую сорт»розку. Никогда и 5 Если в корзине сшс остались носки, перейти к п.

! становок. По этой жс причине он часто приводится в положить носок". Методы бисирой <иртирииии Глава 13 /» Простая сортировка методом лиаейаык вставок. Сортлролка с длоичаммл лстаэкамл лучие, а сортироэка методом Велла еие лучее. */ ЧОО й ЬТКЕККГВВЕКттОК(кеуре а[), ппз1япек 1опя л) ( (ог (1 = 1; г < и; 1++) /* аайти точку естаэка */ Гог () = г/ ) > О ЬЬ Ст(а[) - 1), а[))); ) †) [ /' Переместить эсе элемеаты дальле а эстаэлть текуиил элемеат. */ ЕиР = а[1)1 а[1) = а[1 - 1); а[) — 1) = Сир; Листинг 13.1. Сортировка методом линейных вставок. Листинг 13.2. Сортировка с двоичными вставками.

/и Зто простой алгоратм сортлроэкл с длоичамма вставками. Сортлроака с длоичлмми эсталкама э предаем аамаого быстрее сортиролки методом ллаейимк астаэок, а сортировка методом Велла еле быстрее. Вл, молет быть, сами покепаете протестароаать сортироаку с дэолчамма вставками а сортлроэку методом Велла, во я пОДОЗрЕЭап, чтО аа больлилстле систем сортировка методом Велла будет быстрее.

ппайдпед 1опд '/ )! чо) В 1Е5ект1ок5окт(ееуре актау[), опл[дпеа 1опя сопле) Есуре елр; ( ппайялеп 1опд рагекггол/ /* колец полого сегиеата */ 1олд Ьед/ /* Поиск пачиаается здесь (эта перемеалая перемещается к 1рд) '/ 1опд )ря' /' текулая точка астаака (посередлле мекду Ьед а епд) 1опд епк) /* Поиск закаачилается здесь */ Егуре ееир; /* Перемеиаая предаазаачела для лремеааого крааеаия одаого элемелта массива */ /' По определеаал, сортлруется один элемеат. Формируем асе болыие а болыие упорядочелаые ) сегменты до тек пор, пока весь маслил ле будет отсортировал.

*/ ) (ог (рагс1Е1оп = 11 рагс1Е[оп < сопит/ рагс1Е1оп++) ( /и длоачаыл плеск точки эстаэка */ Ьед = трд = 01 /* Перэый элемеет отсортиролаиаой части масслла — это Поскольку девушки смогут осмотреть нлн перемес- на носок, который лежит посередине межл) нашими Я Р л Оргаиизаии» данило $Щ !! Часть и А<от»дыби<трои сортирооси ф$~Я Глава 13 ЯЙЙ$ К счастью, количество сравнении очень невелико. Тем Шелла О-нотация точно неизвестна, но известно. что носки".

"Нет. Я прилумал кос-что другое". Дик любит "Я принсез пилу", — сказала Вики. не менее, количество перемещений, которое равно ко- при разумном выборе последовательности длин шагов игрспь в покер Он часто играет со своими друзьями из "Нез, нет. Ничего такого не нужно. Мы просто различеству перемещений при сортировке методом линей- Ь он илшст порядок сложности, близкий к О1П'ч). За- Дспартамента порог. Обычно он выигрывает намного делим все монеты на несколько кучек".

ныл вставок, существенно снижает скорость этого мс- чем нужна сортировка методом Шелла? Выполнение болли<с, чем пРоигРывает, и Уже собРал большУю кол- бра<пой быстрой <ортирояии тода. Если бы пал< прихолилось перемещать все носки, этого метода сортировки обусловлено наличием нс- лслцпю мелочи. Он принес пшлонную банку, полную 1. Высыпать все монеты в одну кучу. то работы было бы нс меньше, чем раньше Но сели скольких больших элементов в массиве данных, кото- монст. "Отсортируйте вот это и нс забудьге про очки.

перса началом сортировки список уже был отсортиро- рый необходимо отсортировать, Иногда самый Гюлыпой Правила остаются теми же. Только тот, кзо носит очки, 2. Взять из кучи одну монету. ван, нам вообще нс придется перемещать элементы. В элемент люжет стоять на первол< месте. В таком случае может сортировать монеты. Другис должны молчать".

3. Если монета имеет большой номинал, положить ее ланнол< случае л<ы простодобавлясм носок в конец спис- сортировка л<етолол< вставок на каждом шаге будет ве- "да тут их тысячи! Может даже сотни тысяч! С на- в другую лучу справа. ка. Поэтому общее количество т»пераций может быть ремешать этот элемент на одну позицию правее 1нижс) шими л<етодами сортировки носков мы не справимся и 4.

Если монета имеет небольшой номинал, положить всего 512,5. Слеловательно, сортировка носков займет, Максимальныи элемент будет перемешаться и — 1 раз за день!" — расстроилась Мэрилин. И тут Ните пришла схорсс всего, около 49 минут, хотя, если носки уже Но эзо ешс не самос плохое. Иногда рядом с ним нахо- в голову великолепная идея: "Мы поделим их пополам". были отсортированы, то можно справиться и за 8,5 дятсядругис большие элементы. Они также, каки мал..

минут. сг<л<альный элемент, будут перемешаться в конец мас- Листинг 1З.З. Сортировка методом Шелла. Очевидно, что сортировка двоичными вставками сива. В некоторых очень редких случаях ясе элементы гораздо»<)офек<ивисе сортировки методом линейных располагакпся в массиве в обратном порядке (хужс нс ** поспедоватепьвость дпвп магов Ь я этоя версия метода Велла взята яз дапдьоок ог А10осусьая вставок. Для малых лшссивов пашнях (около 20 элемсн- придумаешь]. Воз это действительно проблема для сор- апб ояея ягспсепгяя лп Раяса1 апб С, Саяеоп Соппяе, д)сагбо Ваеяа-уаеея, А001яоп Иея1яу; тов) сортировка двоичными вставками является, навер- тировки методом вставок! 1БВВ< 0201416027 нос, елинственным ш<горитмом, который следовало бы Именно в таком слу ~ас помошет сортировка мото° * У мявя ята последовательность дает л чаво роз пьтаты, чем у Седавяяа 1эедоеыгск) прв попвой у мявя ята последовательность да т у р у , у д 1 0 ) Р О иза даьлмх ргаьиюяих Мемеда беьмрьагармьрпвхи ЩД ! Часть П Глава 13 5.

Перейти к п. 2 лля каждой кучи, пока во всех ку- танется по одной монете„все монеты окажутся пол- >рак мы никогла не закончим!" — засзоггала Джули ПИ(зЗМИДЗЛЬНЗЯ СО(зТИРОВКВ чах не окажется по одной монете. Поскольку кучи постыл упорядоченными. "Давайте посмотрим, что мы сделали не так, — скамонет с большим номиналом находятся справа, а с зала Мэрилин. — Я заметила, что иногда мы берси пен- Однажды семья Джонс решила провести турнир по Реализация этого алгоритма на С приведена в лис- ни «енни — с маленькая и и с а ((о мы можем шашкам. Все значи, что лУчший игРок — Дик, поэтом) меньшим номиналом — слева, то, когда в кучах оси „„, нс бра, енин, поскольку в куче мо,ут бьгть в и'Рвом 'УРе он нс ИГР' " Что 'ае"и всех остазьных, только пенни.

По<ему бы нам просто нс перемешать го они пытазись свести самых стаРших игРоков (и, возкуч> и не выбрать из нес несколько монет лругого лос- можно, самых хоРоших) с самыми молод™ (и, воз- /» 9 люжно, самыми плохими). Реа играла с Вики, Мэрилин— Првмвтвввая бвстрая сортвровка. Этот алгоритм везфйектввев дпя общих цепей. пе вспопьзуйте его. тоинства. А затем мы б>дсм брать срелнюю из них и */ разделять монеты на кучи с ее использованном". чо16 ПВОПЭВ(йсур Л, (пс 1, упс г) ( (у (1 < г) вснз кучу — а вдруг ее не нужно булет сортир звать?" игРал, а МэРилин преполнесла первую неожиданность.

Л > Реи была идея ешс лтчше "я заметила что вы Ко всеобшсму уливлснию, она вьпвла победителем и 1пе 1, веуре евр, Почем> бы вам для сортировки маленьких куч нс ис т)рниры часто проводятся именно по такои схеме, явпольювать тс жс методы кото ые вы использовали п(п, ляется опрслсление наилучшего игрока (на сеголняш/* Разделить кучи ва сегмевтв ь/ уог (:;) ( сортировке носков! Я ручаюсь, вы сэкономите уим) ""и ле"ь) Д>чш"с и"Ро»и перемсша"зтсв ""ерх по свис ку. о терминологии вычислительной техники такая в емснп" к . П )зл))ч' н Организаиио данных Часть й (лля которых мы должны были бь1 выполнять пирами- СОРТИРОВКО ПОДСЧЕТОМ дальную сортировку) эти пирамиды не дают такой эффективности, как более простые азгорнтмы.

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

Но такая сортировка так жс неэффективна, Мы больше никогда не Увидим солнечного света",— как и быстрая сортировка. А те случаи, в которых быстрая сортировка нс срабатывает, случаются настолько нечасто, что реализовывать пирамидальную сортировони долго сплели и д мали.

"С тем же успехом мы мог к становится нецелесообразно. ку становится нецелссоо разно. ли бы отсортировать целую ванну мелочи, — сказала Если рассмотреть обший счучай поведения метолов Мэрслин. — Мы никогда их не отсортируем . ен п ишла идея "Банки' Нам пот сбудет быстрой и пирамилальной сортировки, то гв срслнелг) И туг Карен пришла идея: "Банки. Нам потребует метод пирамидальной сортировки окажется горазло мелленнее. Вот какой врел может нанести провслсние пиралгилальггой сортировки.

Прелставьтс себе специаль- называть ну:аную банку, а остальные будут подносить ную таблицу, которую раздали лбббб сотрулникам. эту банкУ, — ответила КаРен. — Это не наРУшает пра вила, поскольк тот, кто носит очки, кладет монету в В таблице содср;кится информация о сотрулниках. Иногда нам приходится находить сотрудника по имс- нужную анку и говорит оставь ~~~' и гово ит остальным, что они лолжпго лелать". тетоды быстрой сортирооно Глава 13 яс)и~ йретоди Гиестрст сори ироиии Ореаиизааии даииих ! Глава 13 Часть в списка. При этом для кажлого элемента поналобится место для хранения по крайней мере одного указателя.

Характеристики

Тип файла
DJVU-файл
Размер
12,26 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6376
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее