Если вы считаете, что скорость решения той или иной задачи зависит, в первую очередь, от мощности компьютера, на котором она решается, то эта книга станет для вас откровением с самой первой страницы. Вы узнаете, что наибольший вклад в производительность программы вносят правильно выбранный алгоритм и его реализация в виде компьютерной программы. Выбор подходящего алгоритма среди массы других, способных решить вашу задачу, - дело не из самых простых, и этому вы тоже научитесь в данной книге.В новом издании описано множество алгоритмов для решения задач из самых разных областей, и вы сможете выбрать и реализовать наиболее подходящий для ваших задач алгоритм. Здесь даже совершенно незнакомый с математикой читатель найдет все, что нужно для понимания и анализа производительности алгоритма.Написанная профессионалами в своей области, книга достойна занять место на книжной полке любого практикующего программиста.Эта книга потрясающая по трем причинам: в ней легко найти нужные алгоритмы и структуры данных; стиль изложения материала - скорее разговорный, чем академический; внимание читателя постоянно акцентируется на сравнительном анализе производительности алгоритмов. Если вы живете в реальном мире, эта книга навсегда изменит ваш способ использования структур данных.Ричард Резник, директор GQ Life ScienceДля создания надежного программного обеспечения необходимы эффективные алгоритмы, но программисты редко представляют себе весь спектр алгоритмов для решения своих задач.В данном обновленном издании описываются существующие алгоритмы для решения различных задач. Оно помогает выбрать и реализовать алгоритм, наиболее подходящий для ваших задач, при этом обеспечивая достаточное математическое обоснование для понимания и анализа производительности алгоритма.Будучи акцентированной на приложениях, а не на теории, эта книга основана на строгих принципах, включая документированные решения реальных задач на разных языках программирования. В это издание добавлены десяток новых алгоритмов, реализованных на языке Python, в том числе реализация диаграмм Вороного, а также новая глава о пространственных древовидных структурах, таких как R-деревья и Quadtrees.В этой книге вы научитесь: Решать новые задачи и повышать эффективность имеющихся решенийБыстро находить алгоритмы для решения своих задач и выбирать наиболее подходящиеНаходить решения на языках программирования C, C++, Java, Python с помощью рекомендаций из книгиОценивать производительность алгоритмов и создавать условия для достижения максимальной эффективностиИспользовать наиболее подходящие структуры данных для повышения эффективности алгоритмов.
Esli vy schitaete, chto skorost reshenija toj ili inoj zadachi zavisit, v pervuju ochered, ot moschnosti kompjutera, na kotorom ona reshaetsja, to eta kniga stanet dlja vas otkroveniem s samoj pervoj stranitsy. Vy uznaete, chto naibolshij vklad v proizvoditelnost programmy vnosjat pravilno vybrannyj algoritm i ego realizatsija v vide kompjuternoj programmy. Vybor podkhodjaschego algoritma sredi massy drugikh, sposobnykh reshit vashu zadachu, - delo ne iz samykh prostykh, i etomu vy tozhe nauchites v dannoj knige.V novom izdanii opisano mnozhestvo algoritmov dlja reshenija zadach iz samykh raznykh oblastej, i vy smozhete vybrat i realizovat naibolee podkhodjaschij dlja vashikh zadach algoritm. Zdes dazhe sovershenno neznakomyj s matematikoj chitatel najdet vse, chto nuzhno dlja ponimanija i analiza proizvoditelnosti algoritma.Napisannaja professionalami v svoej oblasti, kniga dostojna zanjat mesto na knizhnoj polke ljubogo praktikujuschego programmista.Eta kniga potrjasajuschaja po trem prichinam: v nej legko najti nuzhnye algoritmy i struktury dannykh; stil izlozhenija materiala - skoree razgovornyj, chem akademicheskij; vnimanie chitatelja postojanno aktsentiruetsja na sravnitelnom analize proizvoditelnosti algoritmov. Esli vy zhivete v realnom mire, eta kniga navsegda izmenit vash sposob ispolzovanija struktur dannykh.Richard Reznik, direktor GQ Life ScienceDlja sozdanija nadezhnogo programmnogo obespechenija neobkhodimy effektivnye algoritmy, no programmisty redko predstavljajut sebe ves spektr algoritmov dlja reshenija svoikh zadach.V dannom obnovlennom izdanii opisyvajutsja suschestvujuschie algoritmy dlja reshenija razlichnykh zadach. Ono pomogaet vybrat i realizovat algoritm, naibolee podkhodjaschij dlja vashikh zadach, pri etom obespechivaja dostatochnoe matematicheskoe obosnovanie dlja ponimanija i analiza proizvoditelnosti algoritma.Buduchi aktsentirovannoj na prilozhenijakh, a ne na teorii, eta kniga osnovana na strogikh printsipakh, vkljuchaja dokumentirovannye reshenija realnykh zadach na raznykh jazykakh programmirovanija. V eto izdanie dobavleny desjatok novykh algoritmov, realizovannykh na jazyke Python, v tom chisle realizatsija diagramm Voronogo, a takzhe novaja glava o prostranstvennykh drevovidnykh strukturakh, takikh kak R-derevja i Quadtrees.V etoj knige vy nauchites: Reshat novye zadachi i povyshat effektivnost imejuschikhsja reshenijBystro nakhodit algoritmy dlja reshenija svoikh zadach i vybirat naibolee podkhodjaschieNakhodit reshenija na jazykakh programmirovanija C, C++, Java, Python s pomoschju rekomendatsij iz knigiOtsenivat proizvoditelnost algoritmov i sozdavat uslovija dlja dostizhenija maksimalnoj effektivnostiIspolzovat naibolee podkhodjaschie struktury dannykh dlja povyshenija effektivnosti algoritmov.